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: true4.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

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

感觉好简洁,我都没有编写任何增删改查的语句,就直接实现了相关操作。
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; }}?