Spring Boot整合Spring-data-JPA

xiaoxiao2025-04-16  6

一.整合Spring-data-JPA

JPA(Java Persistence API的简称,中文名Java持久层API)基于注解来去配置映射,实体类,数据库表的规范(增删改查的规范)

1.需求

使用Spring Boot + Spring MVC + Spring Data JPA + EasyUI 框架组合实现部门列表查询先创建一个数据库,并加入点数据来进行操作 DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_name` varchar(100) DEFAULT NULL COMMENT '用户名', `password` varchar(100) DEFAULT NULL COMMENT '密码', `name` varchar(100) DEFAULT NULL COMMENT '姓名', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; INSERT INTO `user` VALUES ('1', 'zhangsan', '123456', '张三'); INSERT INTO `user` VALUES ('2', 'lisi', '123456', '李四'); INSERT INTO `user` VALUES ('3', 'wangwu', '123456', '王五'); INSERT INTO `user` VALUES ('4', 'zhangwei', '123456', '张伟'); INSERT INTO `user` VALUES ('5', 'lina', '123456', '李娜'); INSERT INTO `user` VALUES ('6', 'lilei', '123456', '李磊');

2.创建Maven工程(打jar包)

在pom.xml中进行如下配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>it.playmaker</groupId> <artifactId>SpringBoot-play</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--这些地方不写版本号的原因在于会自动匹配合适版本--> </plugin> </plugins> </build> </project>

3.加入Spring-Boot配置文件

application.properties此文件用于覆盖Spring Boot的默认配置 #DB Configuration: spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxxx?characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=xxxxx #JPA Configuration: spring.jpa.database=mysql spring.jpa.show-sql=true spring.jpa.generate-ddl=true #是否自动生成ddl spring.jpa.hibernate.ddl-auto=update #生成ddl的方式 spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy #选择的命名策略
(1).后端实现
创建实体类 @Entity @Table(name="s_user")//对应表 public class User { @Id @Column(name="id") @GeneratedValue(strategy=GenerationType.IDENTITY)//自增长 private Long id; @Column(name="user_name")//在windows系统下mysql不区分大小写。在Linux系统下,区分大小写 private String user_name; @Column(name="password") private String password; @Column(name="name") private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User [id=" + id + ", user_name=" + user_name + ", password=" + password + ", name=" + name + "]"; } } 创建DAO接口 /* * 用户持久层接口 */ @Repository("userDao") public interface IUserDao extends JpaRepository<User,Long>{//在持久层接口:如果用Spring data-JPA不想写一些没用方法 这个时候简便方式,让JPA来实现,继承一个接口。参数分别是你要操作哪个类,你的实体类主键数据类型 /* * 查询所有用户 */ //List<User> findAll(); 继承了这个接口就不用写了 } 创建业务逻辑接口 public interface IUserService { //查询所有用户 List<User> findAllUser(); } 创建业务逻辑实现类 @Service("userService") public class UserServiceImpl implements IUserService { @Autowired private IUserDao userDao; @Override public List<User> findAllUser() { // TODO Auto-generated method stub return userDao.findAll(); } } 创建Controller /* * 用户的控制器 */ @RestController @RequestMapping("/user") public class UserController { @Autowired private IUserService userService; @RequestMapping("/findAll") public List<User> findAllUser(){ List<User> users = userService.findAllUser(); return users; } } 创建引导类(注意引导类所放的包) /* * spring boot引导类 */ @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 打开浏览器访问http://localhost:8080/user/findAll页面显示的就是JSON格式的数据
(2).前端实现
Spring Boot支持我们编写html,jsp文件的static文件夹内容.user.html(要放在配置文件下的static文件夹中) <!DOCTYPE html> <html> <head> <meta charset="UTF-8" content="text/html;charset=UTF-8"> <title>人员信息</title> <link rel="stylesheet" type="text/css" href="ui/themes/default/easyui.css"> <script type="text/javascript" src="ui/jquery.min.js"></script> <script type="text/javascript" src="ui/jquery.easyui.min.js"></script> <script type="text/javascript" src="ui/locate/easyui-lang-zh_CN.js"></script> <script type="text/javascript"> $(function() { $('#grid').datagrid({ url:'user/findAll',//要与控制器下的地址一致 columns:[[{ field:'id', title:'编号', width:50 },{ field:'name', title:'姓名', width:100 },{ field:'user_name', title:'账号', width:200 }]] }); }); </script> </head> <body> <table id="grid"></table> </body> </html> 之后我们直接访问http://localhost:8080/user.html
转载请注明原文地址: https://www.6miu.com/read-5028371.html

最新回复(0)