[Spring Boot] 整合JPA
- 添加依赖
pom.xml
<!-- Jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Spring Boot 启动 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
- yml配置文件
spring:
datasource:
url: jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
show-sql: true #打印sql
properties:
hibernate:
format_sql: true #格式化sql
server:
port: 8082
- 实体类关联数据库表
@Entity //关联数据库中的book表
@Data
//Book实体类
public class Book {
/*
@Data注解是lombok的注解,它会帮我们生成各种set、get方法
@id是主键注解
lombok插件要在idea里自己添加下载
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) //主键自增
private Integer id;
private String name;
private String author;
}
- 创建BookRepository,继承JpaRepository
- 测试使用接口
- 测试成功可转到Controller中使用
BookController
@RestController
@RequestMapping("/book")
public class BookHander {
//自动注入BookRepository,该接口继承了JpaRepository<Book,Integer>,因此可以直接调用Jpa操作数据库的方法
@Autowired
private BookRepository bookRepository;
//查询所有
@GetMapping("/findAll")
public List<Book> findAll(){
//参数添加了排序规则,按照id排序
return bookRepository.findAll(Sort.by(Sort.Direction.DESC, "id"));
//return bookRepository.findAll();
}
7、 访问