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

springboot整合JPA+MYSQL+queryDSL数据增删改查

springboot整合JPA+MYSQL+queryDSL数据增删改查

springboot整合JPA+MYSQL+queryDSL数据增删改查

SpringBoot整合JDBCMybatisSpringData JPA

springboot整合JPA