整合JPA和Spring是常见的做法,可以方便地管理持久化对象和事务。
1. 添加依赖
首先,在 pom.xml 文件中添加Spring和JPA的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
2. 配置数据源
在 application.properties 文件中配置数据源信息:
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
3. 创建实体类
定义一个简单的实体类,例如 Product :
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private double price;
}
4. 创建Repository接口
创建一个继承自 JpaRepository 的接口,用于操作实体类:
public interface ProductRepository extends JpaRepository<Product, Long> {
}
5. 创建Service类
创建一个Service类,用于处理业务逻辑:
@Service
public class ProductService {
@Autowired
private ProductRepository productRepository;
@Transactional
public List<Product> getAllProducts() {
return productRepository.findAll();
}
@Transactional
public Product saveProduct(Product product) {
return productRepository.save(product);
}
}
6. 使用Controller
创建一个Controller类,处理HTTP请求:
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping
public List<Product> getAllProducts() {
return productService.getAllProducts();
}
@PostMapping
public Product addProduct(@RequestBody Product product) {
return productService.saveProduct(product);
}
}