在mysql8.0版本上用JPA初始化数据表的操作流程

第一步——配置依赖

    
        mysql
        mysql-connector-java
        runtime
    

    
        org.springframework.boot
        spring-boot-starter-web
    

第二步——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...

你可能感兴趣的:(javamysql)