spring boot核心理解-各种starter

  • 作用:用于与数据库交互,提供了 JPA 支持,并集成了 Hibernate。

  • 引入方式:在 pom.xml 中添加如下依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
  • 功能

    • 自动配置了 EntityManagerDataSource 等数据库相关的 Bean。
    • 简化了 JPA 的配置,只需要提供基本的数据库连接信息(如 URL、用户名、密码)。
    • 提供了 CrudRepositoryJpaRepository 接口,用于快速实现基本的增删改查功能。
  • 配置项

  • 使用 application.properties 文件进行配置

  • # 数据库连接 URL
    spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC
    
    # 数据库用户名
    spring.datasource.username=root
    
    # 数据库密码
    spring.datasource.password=your_password
    
    # JPA 的方言(根据数据库类型选择相应的方言)
    spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
    
    # JPA 自动生成的 DDL 操作(更新表结构)
    spring.jpa.hibernate.ddl-auto=update
    
    # 打印 SQL 日志
    spring.jpa.show-sql=true
    

  • spring.datasource.url:指定连接的数据库 URL,这里是 MySQL 数据库的连接地址。替换 your_database_name 为你实际的数据库名称。
  • spring.datasource.usernamespring.datasource.password:数据库连接的用户名和密码。
  • spring.jpa.database-platform:指定 JPA 使用的数据库方言。MySQL8Dialect 是针对 MySQL 8 的方言。如果你使用的是其他版本或数据库,需要修改为对应的方言。
  • spring.jpa.hibernate.ddl-auto:用于定义在启动时如何管理数据库表结构。常用的值有:
    • update:如果表结构有变化,会自动更新。
    • create:每次启动时重新创建表(会丢失数据)。
    • create-drop:创建表,在会话结束时删除表。
    • none:不会做任何表结构管理。
  • spring.jpa.show-sql:设置为 true 时会在控制台打印 SQL 语句,方便调试。
  • 使用 application.yml 文件进行配置

    也可以使用 application.yml 格式进行配置:

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC
        username: root
        password: your_password
      jpa:
        database-platform: org.hibernate.dialect.MySQL8Dialect
        hibernate:
          ddl-auto: update
        show-sql: true
    

    这个配置和 application.properties 的效果相同,只是格式不同(YAML 格式)

  • 示例代码

    @Entity
    public class User {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String name;
        
        // Getters and setters...
    }
    
    public interface UserRepository extends JpaRepository<User, Long> {
    }
    
    @Service
    public class UserService {
        @Autowired
        private UserRepository userRepository;
    
        public List<User> getAllUsers() {
            return userRepository.findAll();
        }
    }
    

    通过引入 spring-boot-starter-data-jpa,可以轻松地与数据库交互,Spring Boot 自动配置了 JPA 所需的基础设施。

  • 上一篇:【动手学深度学习】7.1 深度卷积神经网络(AlexNet)(个人向笔记)-1. 学习表征


    下一篇:Video-LLaMA部署-[EMNLP 2023演示]Video- llama:用于视频理解的指令调谐视听语言模型