Spring boot根据实体类自动创建数据表
程序员文章站
2022-05-04 16:26:35
...
Spring boot根据实体类自动创建数据表
一、application.properties
配置如下:
# datasource
spring.datasource.url=jdbc:mysql://localhost:3306/demo?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# JPA
spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
#这个参数是在建表的时候,将默认的存储引擎切换为 InnoDB 用的
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto的属性有以下几种参数:
create:每次加载hibernate会自动创建表,以后启动会覆盖之前的表,所以这个值基本不用,会导致的数据的丢失。
create-drop : 每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除,下一次启动会重新创建。
update:加载hibernate时根据实体类model创建数据库表,这是表名的依据是@Entity注解的值或者@Table注解的值,sessionFactory关闭表不会删除,且下一次启动会根据实体model更新结构或者有新的实体类会创建新的表。
validate:启动时验证表的结构,不会创建表。
none:启动时不做任何操作。
二、实体类
代码如下(示例):
package com.springboot.example.Entity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.Date;
@Entity
@Data
public class TestInit {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String port;
private String data1;
private String data2;
private Date insertTime;
}
启动项目后查看数据库
上一篇: 队列
下一篇: 多线程知识点详细讲解