Skip to content
On this page

环境搭建

相关代码模块在:spring-boot-demo -> spring-data-jpa

  1. 添加依赖
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.6.2'
    // https://mvnrepository.com/artifact/mysql/mysql-connector-java
    implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.29'
  1. yml配置
server:
  port: 9004
  servlet:
    context-path: /jpa
spring:
  jpa:
    properties:
      hibernate:
        hbm2ddl:
          auto: update
        dialect: org.hibernate.dialect.MySQL5InnoDBDialect
        format_sql: true
        enable_lazy_load_no_trans: true
    show-sql: true
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/spring-data-jpa?useUnicode=true&characterEncoding=utf8&useSSL=false
    username: root
    password: Jiliang272
    hikari:
      # 最大连接数,默认10
      maximum-pool-size: 30
      # 最小空先连接数
      minimum-idle: 10
      # 连接超市时间,默认是30000(毫秒)
      connection-timeout: 60000
      # 空先连接的最长生命周期,值0标识无限生命周期(毫秒)
      max-lifetime: 600000
      # 连接到数据时等待最长时间(秒)
      login-timeout: 5

配置解释

  • hibernate.hbm2ddl:根据实体类自动创建和更新数据表结构,而使用spring data jpa可以省略传统下你过目开发中的见表工作
  • hibernate.hbm2ddl.auto取值
    • create:根据实体类生成表,每次运行都会删除上一次的表,之前保存的数据会丢失
    • create-drop:根据实体类生成表,但是当sessionFactory关闭时,新生成的表就会被删除,即表的存在其尽在项目运行阶段
    • update:最常用的属性,根据实体类生成表,如果实体类的属性发生改变,则会在对应的表中添加属性,但表中的就字段仍然存在,也不会删除以前的数据。如果更改了属性名称,原来的属性对应表字段不会删除,而会新增对应属性的表字段
    • validate:指挥和数据库中的表进行比较,不会创建表,但是会插入新值
  • hibernate.dialect:对特定的关系数据库生成给优化的sql
  • hibernate.format_sql:格式化sql,让输出的sql更符合阅读习惯
  • hibernate.enable_lazy_load_trans:默认为false,如果设置为true,则可以在测试环境下模拟出事务的效果,以便使用它的懒加载
  • jpa.properties.show-sql:将底层的sql语句输出到控制台