Spring Data JPA 入门
2022-11-25 本文已影响0人
Tinyspot
1. 基础
JAP 全称 Java Persistence API
1.1 引入依赖和配置
导入依赖
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
application.yml 配置
spring:
application:
name: concrete-jpa
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://mysql.sqlpub.com:3306/spotlive
username: xxx
password: xxxxxx
jpa:
database: mysql
show-sql: true
open-in-view: true
2. 实战
2.1 实体类
- @Id 指定主键字段
@Data
@Entity
@Table(name = "boot_order")
public class Order {
@Id
private Integer id;
private String code;
private String userName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date gmtCreate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date gmtModify;
}
2.2 启动类
@SpringBootApplication
@EntityScan("com.example.concrete.jpa.entity")
public class JpaApplication {
public static void main(String[] args) {
SpringApplication.run(JpaApplication.class, args);
}
}
2.3 接口
- 继承
JpaRepository<实体, 主键ID>
public interface OrderDao extends JpaRepository<Order, Integer>, JpaSpecificationExecutor<Order> {
}
使用
@Service
public class OrderServiceImpl implements OrderService {
@Resource
private OrderDao orderDao;
@Override
public Order findOrderById(Integer id) {
return orderDao.findById(id).get();
}
@Override
public void save(Order order) {
orderDao.save(order);
}
@Override
public void update(Order order) {
orderDao.save(order);
}
@Override
public void delete(Integer id) {
orderDao.deleteById(id);
}
}
2.4 调用测试
@RestController
@RequestMapping("/order")
public class OrderController {
@Resource
private OrderService orderService;
@GetMapping("/query/{id}")
public Order findOrderById(@PathVariable Integer id) {
return orderService.findOrderById(id);
}
}