springboot整合JPA
Posted XiaoMa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
3.在resources文件夹下新建一个application.yml文件,添加数用来连接数据库的相关配置,我这里默认数据源是Hikaricp,如果想更改默认数据源,参考链接(27条消息) SpringBoot重点详解--配置数据源_pengjunlee的博客-CSDN博客_springboot配置数据源
spring: datasource: url: jdbc:mysql://127.0.0.1:3306/jpa username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource #数据库的操作配置 jpa: hibernate: #更新或者创建数据表 ddl-auto: update #如果有sql语句操作会在控制台显示相应的数据库操作信息 show-sql: true
4.在entity文件夹新建一个User.java类文件,添加和数据库映射关系的代码
package com.xiaoma.springboot.entity; import javax.persistence.*; @Entity //告诉JPA这是一个实体类 @Table(name = "tbl_user") //建立和数据表的映射关系 public class User { @Id //表示这个属性为主键 @GeneratedValue(strategy = GenerationType.IDENTITY) //表示这个属性为自增主键 private Integer id; @Column private String username; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
5.编写repository接口,这个接口继承JpaRepository,现在运行一下程序控制台会输出如下信息。
package com.xiaoma.springboot.repository; import com.xiaoma.springboot.entity.User; import org.springframework.data.jpa.repository.JpaRepository; //第一个参数是实体类类名,第二个参数是主键类型 public interface UserRepository extends JpaRepository<User,Integer> { }
6.编写Controller层,操作数据库,这里实现插入与查询功能
package com.xiaoma.springboot.controller; import com.xiaoma.springboot.entity.User; import com.xiaoma.springboot.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired UserRepository userRepository; //通过getUser方法去查询数据库中的数据,根据id去查询 @GetMapping("/user/{id}") public User getUser(@PathVariable("id") Integer id){ //因为我们的UserRepository继承了Repository类 //而Repository类就已经给我们实现了很多进行数据库操作的方法,所以直接去调用这里的方法就行了 User user=userRepository.findById(id).orElse(null); return user; } //实现插入功能 @GetMapping("/user") public User insertUser(User user){ //调用Repository类中的save方法来插入数据 User save = userRepository.save(user); return save; } }
7.运行程序,打开浏览器输入localhost:8080/user?id=1&&username=xiaoma&&password=123后数据库就会新增一条记录,输入localhost:8080/user/1就会将刚刚插入的数据显示出来
以上是关于springboot整合JPA的主要内容,如果未能解决你的问题,请参考以下文章
springboot整合JPA+MYSQL+queryDSL数据增删改查
springboot整合JPA+MYSQL+queryDSL数据增删改查
springboot整合JPA+MYSQL+queryDSL数据增删改查