-
springboot整合JPA
spring-data-jpa:就是和数据库打交道,进行数据访问的。
一:步骤:
1.新建一个maven项目,新建一个数据库(数据库中可以没有表)
2.导入相关依赖
3.编写application.yml文件,添加数用来连接数据库的相关配置
4.编写实体类,建立和数据库的映射关系
5.编写repository接口,该接口继承JpaRepository
6.编写controller层,进行数据库操作
二:详细过程如下(附代码):
1.新建一个maven项目,新建一个数据库(我这里没有创建数据表),项目目录结构和数据库结构如下
2.导入相关依赖,包括web,JDBC,MySql Driver,Spring Data JPA
1 <dependencies> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-data-jpa</artifactId> 5 </dependency> 6 <dependency> 7 <groupId>org.springframework.boot</groupId> 8 <artifactId>spring-boot-starter-jdbc</artifactId> 9 </dependency> 10 <dependency> 11 <groupId>org.springframework.boot</groupId> 12 <artifactId>spring-boot-starter-web</artifactId> 13 </dependency> 14 15 <dependency> 16 <groupId>mysql</groupId> 17 <artifactId>mysql-connector-java</artifactId> 18 <scope>runtime</scope> 19 </dependency> 20 <dependency> 21 <groupId>org.springframework.boot</groupId> 22 <artifactId>spring-boot-starter-test</artifactId> 23 <scope>test</scope> 24 </dependency> 25 </dependencies>
3.在resources文件夹下新建一个application.yml文件,添加数用来连接数据库的相关配置,我这里默认数据源是Hikaricp,如果想更改默认数据源,参考链接(27条消息) SpringBoot重点详解--配置数据源_pengjunlee的博客-CSDN博客_springboot配置数据源
1 spring: 2 datasource: 3 url: jdbc:mysql://127.0.0.1:3306/jpa 4 username: root 5 password: 123456 6 driver-class-name: com.mysql.jdbc.Driver 7 type: com.alibaba.druid.pool.DruidDataSource 8 #数据库的操作配置 9 jpa: 10 hibernate: 11 #更新或者创建数据表 12 ddl-auto: update 13 #如果有sql语句操作会在控制台显示相应的数据库操作信息 14 show-sql: true
4.在entity文件夹新建一个User.java类文件,添加和数据库映射关系的代码
1 package com.xiaoma.springboot.entity; 2 3 import javax.persistence.*; 4 5 @Entity //告诉JPA这是一个实体类 6 @Table(name = "tbl_user") //建立和数据表的映射关系 7 public class User { 8 @Id //表示这个属性为主键 9 @GeneratedValue(strategy = GenerationType.IDENTITY) //表示这个属性为自增主键 10 private Integer id; 11 12 @Column 13 private String username; 14 private String password; 15 16 public Integer getId() { 17 return id; 18 } 19 20 public void setId(Integer id) { 21 this.id = id; 22 } 23 24 public String getUsername() { 25 return username; 26 } 27 28 public void setUsername(String username) { 29 this.username = username; 30 } 31 32 public String getPassword() { 33 return password; 34 } 35 36 public void setPassword(String password) { 37 this.password = password; 38 } 39 }
5.编写repository接口,这个接口继承JpaRepository,现在运行一下程序控制台会输出如下信息。
1 package com.xiaoma.springboot.repository; 2 3 import com.xiaoma.springboot.entity.User; 4 import org.springframework.data.jpa.repository.JpaRepository; 5 6 //第一个参数是实体类类名,第二个参数是主键类型 7 public interface UserRepository extends JpaRepository<User,Integer> { 8 }
6.编写Controller层,操作数据库,这里实现插入与查询功能
1 package com.xiaoma.springboot.controller; 2 3 import com.xiaoma.springboot.entity.User; 4 import com.xiaoma.springboot.repository.UserRepository; 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.web.bind.annotation.GetMapping; 7 import org.springframework.web.bind.annotation.PathVariable; 8 import org.springframework.web.bind.annotation.RestController; 9 10 @RestController 11 public class UserController { 12 @Autowired 13 UserRepository userRepository; 14 15 //通过getUser方法去查询数据库中的数据,根据id去查询 16 @GetMapping("/user/{id}") 17 public User getUser(@PathVariable("id") Integer id){ 18 //因为我们的UserRepository继承了Repository类 19 //而Repository类就已经给我们实现了很多进行数据库操作的方法,所以直接去调用这里的方法就行了 20 User user=userRepository.findById(id).orElse(null); 21 return user; 22 } 23 24 //实现插入功能 25 @GetMapping("/user") 26 public User insertUser(User user){ 27 //调用Repository类中的save方法来插入数据 28 User save = userRepository.save(user); 29 return save; 30 } 31 }
7.运行程序,打开浏览器输入localhost:8080/user?id=1&&username=xiaoma&&password=123后数据库就会新增一条记录,输入localhost:8080/user/1就会将刚刚插入的数据显示出来