📜  Spring Boot Starter数据JPA(1)

📅  最后修改于: 2023-12-03 15:05:15.750000             🧑  作者: Mango

Spring Boot Starter数据JPA

介绍

Spring Boot Starter数据JPA是Spring Boot框架的一部分,用于简化JPA(Java持久化API)的使用。它提供了一个快速的、轻量级的、自动配置的方式来使用JPA,而不需要进行任何繁琐的操作。

特性
  • 自动化配置:无需手动配置,将自动配置JPA
  • 简化数据库连接:可快速连接到不同类型的数据库
  • 简化实体管理:可简化实体管理,包括插入、更新、删除等操作,在数据库中执行CRUD操作。
  • 支持事务控制:可方便进行事务控制,确保数据的一致性和完整性。
  • 高效的查询能力:可执行各种类型的查询,包括基于关系型数据库的高级查询。
快速上手

通过以下步骤快速开始使用Spring Boot Starter数据JPA:

步骤1:加入依赖

在pom.xml文件中加入以下依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>
步骤2:配置JPA属性

在application.properties或application.yml中添加以下JPA属性:

spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
  • spring.jpa.hibernate.ddl-auto :用来为每次应用启动时创建数据库表。它有以下选项:
    • create-drop :每次应用启动时都会创建新表。表关闭时也会被销毁。
    • create :应用启动时会创建新表。以后只有在显式调用DDL操作时才会创建表。
    • validate :应用启动时验证表的结构是否正确。
    • update :应用启动时更新表的结构。它将保留现有表中的数据,但它不能够更改某些类型的列,例如字符串的长度。此选项最适合生产环境中的数据库。
  • spring.jpa.show-sql :在控制台输出SQL语句,便于调试
  • spring.jpa.properties.hibernate.format_sql :将SQL语句格式化,易于阅读和调试。
步骤3:创建实体类

在Java中创建实体类,使用JPA注释映射实体类到表

@Entity
public class User {
 
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;
 
    private String name;
 
    private String email;
 
    //getter and setters
}
  • @Entity:用于在数据库中定义一个表
  • @Id:表的主键
  • @GeneratedValue :定义id生成的方式。GenerationType.AUTO表示使用默认的方式来生成表的主键。其他选项包括IDENTITY、SEQUENCE和TABLE。
步骤4:创建仓库接口

在Java中创建仓库接口,使用@Repository注释,继承JpaRepository接口即可。

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
 
}
  • @Repository:用于标记该接口是Spring Data仓储
  • JpaRepository<User, Long>:继承了JpaRepository接口,它是Spring Data框架的一部分,提供了JPA支持的数据访问方法。JpaRepository是CrudRepository的一个子接口。
步骤5:执行CRUD操作

在需要使用数据库的地方,注入UserRepository,即可使用各种JPA支持的数据访问方法,如findById()、findAll()、save()、delete()等。

@Service
public class UserService {
 
    @Autowired
    private UserRepository userRepository;
 
    public void saveOrUpdate(User user) {
        userRepository.save(user);
    }
 
    public void deleteById(Long id) {
        userRepository.deleteById(id);
    }
 
    public Optional<User> findById(Long id) {
        return userRepository.findById(id);
    }
 
    public List<User> findAll() {
        return userRepository.findAll();
    }
}
总结

Spring Boot Starter数据JPA是使用JPA的快速、轻量级、自动配置的方式。它可以快速连接到数据库、管理实体、支持事务管控以及执行各种类型的查询。通过简单的注解配置,即可大幅提高开发效率,减少了开发人员的工作量。