Springboot 之 Hibernate自动建表(Mysql)
来源:互联网 发布:ubuntu拷贝文件夹 编辑:程序博客网 时间:2024/04/30 13:15
本文章来自【知识林】
- 引入Maven依赖包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId></dependency>
spring-boot-starter-data-jpa
中已经包含了Hibernate所需要的相关依赖,所以只需要引入Jpa的依赖即可。
- 创建配置文件
在application.properties
中加一行:spring.profiles.active=dev
application-dev.properties
配置文件的内容如下:
server.port=80# Hibernate 相关配置## 方言#hibernate.dialect=org.hibernate.dialect.MySQL5Dialect## 显示Sqlhibernate.show_sql=true## 自动建表方式#hibernate.hbm2ddl.auto= update## 自动扫描的包前缀entitymanager.packagesToScan= com.zslin## 数据库连接spring.datasource.url=jdbc:mysql://localhost:3306/study05?\ useUnicode=true&characterEncoding=utf-8&useSSL=true&autoReconnect=true## 用户名spring.datasource.username=root## 密码spring.datasource.password=123## 数据库驱动spring.datasource.driver-class-name=com.mysql.jdbc.Driver## 建表方式spring.jpa.properties.hibernate.hbm2ddl.auto=update# 方言spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
注意:最关键的是最后两个配置,spring.jpa.properties.hibernate.hbm2ddl.auto=update
而不是hibernate.hbm2ddl.auto=update
,使用了Jpa所以键名称需要有相应调整,否则不会自动建表
spring.jpa.properties.hibernate.hbm2ddl.auto
有几种配置:
create
:每次加载Hibernate时都会删除上一次生成的表,然后重新生成新表,即使两次没有任何修改也会这样执行,这就导致每次启动都是一个新的数据库,也是导致数据丢失的重要原因。create-drop
:每次加载Hibernate时都会生成表,但当SessionFactory关闭时,所生成的表将自动删除。update
:最常用的属性值,第一次加载Hibernate时创建数据表(前提是需要先有数据库),以后加载HIbernate时只会根据model更新,即使model已经删除了某些属性,数据表也不会随之删除字段。validate
:每次加载Hibernate时都会验证数据表结构,只会和已经存在的数据表进行比较,根据model修改表结构,但不会创建新表。
具体配置可参考文章《Springboot 之 文件结构和配置文件》
- 创建Model实体类
package com.zslin.model;import javax.persistence.*;/** * Created by 钟述林 393156105@qq.com on 2016/10/18 17:15. */@Entity@Table(name = "t_user")public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @Column(name = "user_name") private String userName; private String password; @Column(name = "nick_name") private String nickName; private String email; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}
注意:
1、 在主建Id上需要加注释:@Id
和@GeneratedValue(strategy = GenerationType.AUTO)
才会自动增长
2、 在需要重新设置表字段名的属性上加注释@Column(name = "字段名")
即可。
3、 在类名上添加注释:@Entity
和@Table(name = "t_user")
,t_user
是表名
- 启动项目
启动项目后在study05
数据库中将出现t_user的数据表,且存在相应的表字段。
示例代码:https://github.com/zsl131/spring-boot-test/tree/master/study05
本文章来自【知识林】
- Springboot 之 Hibernate自动建表(Mysql)
- 7.Springboot 之 Hibernate自动建表(Mysql)
- Springboot 之 Hibernate自动建表(Mysql)
- springboot+hibernate+mysql自动建表
- hibernate连接mysql,自动建表失败
- spring模拟之hibernate自动建表
- SpringBoot集成JPA根据实体类自动生成表(mysql)
- mysql数据库下hibernate无法自动建表
- Hibernate 自动建表
- hibernate自动建表
- Hibernate自动建表
- Hibernate自动建表
- Hibernate自动建表
- hibernate自动建表
- Hibernate自动建表
- hibernate 自动建表
- hibernate自动建表
- hibernate自动建表
- 从外网远程控制家里的电视盒子,无需设置路由
- 【第六周 项目6-求解8皇后问题的程序】
- Windows 7 Ultra Edit 运行错误 解决方法
- Springboot 之 多配置文件
- POJ 2296Map Labeler 2-sat + 矩阵相交
- Springboot 之 Hibernate自动建表(Mysql)
- 第八周项目2-建立链串的算法库
- 网络知识点(TCP与UDP,get与post等)
- VI等相关操作
- Springboot 之 JPA对Mysql数据库的增删改查
- 设计负反馈放大电路的一般步骤
- 显著性检测相关论文阅读
- 第八周项目2-建立链串的算法库
- 如何设置App的启动图