springboot整合JPA

1.编写一个实体类bean和数据表进行映射,并且配置好映射关系

package com.seegot.springboot06datajpa.entity;

import lombok.Data;

import javax.persistence.*;

/**
 * @program: springboot-06-data-jpa
 * @description:
 * @author: PP Zhang
 * @create: 2020-04-23 10:09
 */
// 配置映射关系
@Data
@Entity // 告诉JPA这是一个实体类(和数据库表映射的类)
@Table(name = "tb_user") // @Table 是来制定和哪个数据库表对应,如果省略默认表名就是类名的小写user;
public class User {
    @Id // 这是一个主键
    @GeneratedValue(strategy =  GenerationType.IDENTITY) // 自增主键
    private Integer id;
    @Column(name = "last_name",length = 50) // 这是和数据表对应的一个列,列明为last_name 长度为50
    private String lastName;
    @Column //省略@Column 的时候 列明就是属性名。
    private String email;
}

2.编写一个Dao接口来操作实体类对应的数据表(Repository)

package com.seegot.springboot06datajpa.repository;

import com.seegot.springboot06datajpa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

/**
 * @program: springboot-06-data-jpa
 * @description:
 * @author: PP Zhang
 * @create: 2020-04-23 10:18
 */
// 继承JpaRepository,来完成对数据库的操作。
// 其中两个泛型,User是我们要操作的模型,Integer是要操作模型所对应的的表的主键类型。
public interface UserRepository extends JpaRepository<User,Integer> {
}

3.基本的配置(参照 JpaProperties)

spring:
  datasource:
    url: jdbc:mysql://192.168.100.158/jps
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      # 更新 或者 创建数据库表,如果模型更新,那么启动程序后,数据库表会跟着改变,如果是新创建的模型,那么启动后会自动创建对应的数据库表
      ddl-auto: update
      # 每一个sql都显示出来,每次进行增删改查的时候在控制台显示。
    show-sql: true

4.Controller调用jpa

package com.seegot.springboot06datajpa.controller;

import com.seegot.springboot06datajpa.entity.User;
import com.seegot.springboot06datajpa.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;

/**
 * @program: springboot-06-data-jpa
 * @description:
 * @author: PP Zhang
 * @create: 2020-04-23 10:54
 */
@RestController
public class UserController {
    @Autowired
    UserRepository userRepository;
    @GetMapping("/user/{id}")
    public User getUser(@PathVariable("id") Integer id){
        User user = userRepository.findById(id).orElse(null);
        return  user;
    }
    @GetMapping("/user")
    public User insertUser(User user){
        userRepository.save(user);
        return  user;
    }
}

添加:http://localhost:8080/user/?lastName=lisi&email=bb

springboot整合JPA

查询:http://localhost:8080/user/1

springboot整合JPA

感觉好简洁,我都没有编写任何增删改查的语句,就直接实现了相关操作。

1.编写一个实体类bean和数据表进行映射,并且配置好映射关系

package com.seegot.springboot06datajpa.entity;?import lombok.Data;?import javax.persistence.*;?/** * @program: springboot-06-data-jpa * @description: * @author: PP Zhang * @create: 2020-04-23 10:09 */// 配置映射关系@Data@Entity // 告诉JPA这是一个实体类(和数据库表映射的类)@Table(name = "tb_user") // @Table 是来制定和哪个数据库表对应,如果省略默认表名就是类名的小写user;public class User {    @Id // 这是一个主键    @GeneratedValue(strategy =  GenerationType.IDENTITY) // 自增主键    private Integer id;    @Column(name = "last_name",length = 50) // 这是和数据表对应的一个列,列明为last_name 长度为50    private String lastName;    @Column //省略@Column 的时候 列明就是属性名。    private String email;}?

2.编写一个Dao接口来操作实体类对应的数据表(Repository)

package com.seegot.springboot06datajpa.repository;?import com.seegot.springboot06datajpa.entity.User;import org.springframework.data.jpa.repository.JpaRepository;?/** * @program: springboot-06-data-jpa * @description: * @author: PP Zhang * @create: 2020-04-23 10:18 */// 继承JpaRepository,来完成对数据库的操作。// 其中两个泛型,User是我们要操作的模型,Integer是要操作模型所对应的的表的主键类型。public interface UserRepository extends JpaRepository<User,Integer> {}?

3.基本的配置(参照 JpaProperties)

spring:  datasource:    url: jdbc:mysql://192.168.100.158/jps    username: root    password: root    driver-class-name: com.mysql.cj.jdbc.Driver  jpa:    hibernate:      # 更新 或者 创建数据库表,如果模型更新,那么启动程序后,数据库表会跟着改变,如果是新创建的模型,那么启动后会自动创建对应的数据库表      ddl-auto: update      # 每一个sql都显示出来,每次进行增删改查的时候在控制台显示。    show-sql: true

4.Controller调用jpa

package com.seegot.springboot06datajpa.controller;?import com.seegot.springboot06datajpa.entity.User;import com.seegot.springboot06datajpa.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;?/** * @program: springboot-06-data-jpa * @description: * @author: PP Zhang * @create: 2020-04-23 10:54 */@RestControllerpublic class UserController {    @Autowired    UserRepository userRepository;    @GetMapping("/user/{id}")    public User getUser(@PathVariable("id") Integer id){        User user = userRepository.findById(id).orElse(null);        return  user;    }    @GetMapping("/user")    public User insertUser(User user){        userRepository.save(user);        return  user;    }}?