1. 首页
  2. 软件开发
  3. SpringData——JPA整合Spring完整案例

SpringData——JPA整合Spring完整案例

  • 发布于 2024-08-17
  • 1 次阅读

整合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);
    }
}

原文链接: https://blog.csdn.net/2401_82884096/article/details/138041737