关于java:在mysql80版本上用JPA初始化数据表的操作流程

5次阅读

共计 1485 个字符,预计需要花费 4 分钟才能阅读完成。

第一步——配置依赖

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

第二步——application.properties 设置配置文件

spring.datasource.url=jdbc:mysql://${MYSQL_HOST:127.0.0.1}:3306/yunzhi_spring_boot?useSSL=false
spring.datasource.username=root
spring.datasource.password=000000

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver //MySQL 8 的 spring.datasource.driver-class-name 配置须要改为“com.mysql.cj.jdbc.Driver”spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect // 在 application.properties 配置数据库引擎为 InnoDB

hbm2ddl.auto 有四个属性:

  • create:每次加载 hibernate 时都会删除上一次的生成的表,而后依据你的 module 类再从新来生成新表,哪怕两次没有任何扭转也要这样执行(也就是删除 -> 创立 -> 执行 )
  • create-drop:每次加载 hibernate 时依据 model 类生成表,程序终止时,表就主动删除。
  • update:最罕用的属性,第一次加载 hibernate 时依据 model 类会主动建设起表的构造(前提是先建设好数据库),当前加载 hibernate 时依据 model 类自动更新表构造,即便表构造扭转了,但表中的行依然存在,不会删除以前的行。要留神的是当部署到服务器后,表构造是不会被马上建设起来的,是要等利用第一次运行起来后才会。(没表 -> 创立 -> 操作 | 有表 -> 更新没有的属性列 -> 操作]
  • validate:每次加载 hibernate 时,验证创立数据库表构造,只会和数据库中的表进行比拟,不会创立新表,然而会插入新值。(启动验证表构造 -> 验证不胜利 -> 我的项目启动失败)

第三步——创立实体类

@Entity
public class Teacher {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private Boolean sex;
    private String username;
    private String email;
    private Long createTime;
    private Long updateTime;
    public Teacher() {}
...... 省略 get/set 办法
}

第四步——重新启动后盾,此时数据库曾经实现了相应操作

如果想要晓得更具体的流程,举荐观看 https://segmentfault.com/a/11…

正文完
 0