Day58——SpringBoot2.x整合SpringData JPA

文章目录

  • 一. 回顾
  • 二. 整合SpringData JPA
    • 2.1 JPA简介
    • 2.2 环境搭建

一. 回顾

前面学习了Day57——SpringBoot整合MyBatis,今天来学习整合SpringData JPA

二. 整合SpringData JPA

2.1 JPA简介

Day58——SpringBoot2.x整合SpringData JPA_第1张图片

Day58——SpringBoot2.x整合SpringData JPA_第2张图片
Day58——SpringBoot2.x整合SpringData JPA_第3张图片
Day58——SpringBoot2.x整合SpringData JPA_第4张图片

2.2 环境搭建

Day58——SpringBoot2.x整合SpringData JPA_第5张图片
创建application.yml配置数据源,如下:

spring:
  datasource:
    url: jdbc:mysql://192.168.32.102:3306/jpa
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

编写实体类并进行数据库映射,并配置好映射关系,如下:(注意代码中的注释

package com.atguigu.springboot.entity;


import javax.persistence.*;

//使用JPA注解配置映射关系
@Entity //告诉JPA这是一个实体类(和数据表映射的类)
@Table(name = "tbl_user") //@Table指定和哪个表对应;如果省略默认表名是类名小写即user
public class User {

    @Id //这是一个主键
    @GeneratedValue(strategy = GenerationType.IDENTITY) //自增主键
    private Integer id;

    @Column(name = "last_name", length = 50) //这是和数据表对应的一个列
    private String lastName;
    @Column //省略列名默认就是属性名
    private String email;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

编写Dao接口来操作实体类对应的数据表,如下:(注意代码中的注释

//继承JpaRepository来完成对数据库的基本操作
//JpaRepository要求2个泛型,第一个是实体类的类型,第二个是实体类主键的类型
public interface UserRepository extends JpaRepository<User, Integer> {

}

在yml中做jpa配置,如下:

spring:
  jpa:
	hibernate:
	# 更新或者创建表结构(第一次是创建)
	ddl-auto: update
	#控制台显示SQL
	show-sql: true

yml完整代码如下:

spring:
  datasource:
    url: jdbc:mysql://192.168.32.102:3306/jpa
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    hibernate:
      # 更新或者创建表结构(第一次是创建)
      ddl-auto: update
    #控制台显示SQL
    show-sql: true

编写controller,如下:

@RestController
public class UserController {

    @Autowired
    UserRepository userRepository;

    @GetMapping("/user/{id}")
    public User getUser(@PathVariable("id") Integer id){
        User user = userRepository.findById(id).orElse(null);注意这里用findById()
        return user;
    }

    @GetMapping("/user")
    public User insertUser(User user){
        User save = userRepository.save(user);
        return save;
    }

}

注意getUser()方法中,使用的是findById(),而不是findOne(),这个方法已经没有了。

至此整合JPA完成

你可能感兴趣的:(SpringBoot)