Springboot整合Spring data JPA
一、 整合配置文件
- 导入pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
- 配置application.yml文件
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://192.168.0.112:3306/jpa
driver-class-name: com.mysql.cj.jdbc.Driver
initialization-mode: always
jpa:
hibernate:
# 更新或创建数据表结构 如果没有这个表 则创建 如果有则更新
ddl-auto: update
# 控制台打印执行的sql
show-sql: true
二、编写实体类和repository接口
- 编写entity实体类
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import javax.persistence.*;
/**
* @author 小白学长
* @create 2020-08-07 22:16
*/
// 配置映射关系
@Entity // 告诉JPA这是一个实体类(和数据表映射的类)
@Table(name = "TBL_USER") // 用来指定和哪个数据表对应 如果省略 默认表名就是user(类名)
@JsonIgnoreProperties(value = { "hibernateLazyInitializer"})
public class User {
@Id // 标注这是一个主键
@GeneratedValue(strategy = GenerationType.IDENTITY) // 让主键自增
private Integer id;
@Column(name = "user_name",length = 50) // 表示这是和数据表对应的一个列
private String userName;
@Column // 省略的画 默认列名就是属性名
private String email;
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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
- 编写repository接口
import com.xiaobai.springdatajpa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @author 小白学长
* @create 2020-08-07 22:30
*/
// 继承JpaRepository来完成对数据库的操作
public interface UserRepository extends JpaRepository<User,Integer>{
// 继承JpaRepository,这是最底层的类,包含了很多增删改查和操纵redis等方法
}
- 编写controller类,进行调测
import com.xiaobai.springdatajpa.entity.User;
import com.xiaobai.springdatajpa.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;
import java.util.Optional;
/**
* @author 小白学长
* @create 2020-08-07 22:40
*/
@RestController
public class UserController {
@Autowired
UserRepository userRepository;
@GetMapping("user/{id}")
public User getUser(@PathVariable("id") Integer id){
// getOne repository提供的方法
User user = userRepository.getOne(id);
return user;
}
@GetMapping("/user")
public User insertUser(User user){
// save方法
User save = userRepository.save(user);
return save;
}
}