Springboot 之 Hibernate自动建表(Mysql)
来源:互联网 发布:linux socket句柄 取值 编辑:程序博客网 时间:2024/05/21 09:12
见:http://www.zslin.com/web/article/detail/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自动建表
- 事务的ACID,PostgreSQL的事务隔离级别实验,非常棒的----数据架构师的PostgreSQL修炼
- lua遍历文件夹, zerobrane下载
- 日志采集框架Flume以及Flume的安装部署(一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统)
- 物联网和互联网有什么区别
- Eclipse自动生成返回值
- Springboot 之 Hibernate自动建表(Mysql)
- 数据结构小结 1
- 智能机器人技术综合实训课程说明
- TP框架简单网站统计功能的实现 PV IP UV
- 工作流调度器azkaban(以及各种工作流调度器比对)
- 为RecyclerView打造通用Adapter 让RecyclerView更加好用
- Java培训:课工场面试经验大放送
- 火狐之RESTClient插件安装-yellowcong
- freemarker生成world转PDF转SWF,加载到浏览器.解决最终浏览器加载的是xml代码的问题.