springboot+hibernate+mysql自動建表
- 引入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 >
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
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
## 顯示Sql
hibernate.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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
注意:最關鍵的是最後兩個配置,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修改表結構,但不會建立新表。
- 建立Model實體類
package com.zslin.model;
import javax.persistence.*;
/**
* Created by 鍾述林 [email protected] 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
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
注意:
1、 在主建Id上需要加註釋:@Id
和@GeneratedValue(strategy
= GenerationType.AUTO)
才會自動增長
2、 在需要重新設定表字段名的屬性上加註釋@Column(name = "欄位名")
即可。
3、 在類名上添加註釋:@Entity
和@Table(name
= "t_user")
,t_user
是表名
- 啟動專案
啟動專案後在study05
資料庫中將出現t_user的資料表,且存在相應的表字段。
相關推薦
springboot+hibernate+mysql自動建表
引入Maven依賴包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-j
IDEA建立springboot+hibernate+oracle自動建表遇到的問題
按照貫通的搭建模式 maven空專案+子模組,發現配置好 oracle ,jpa依賴,yml檔案 配置好,實體類建好 ,自動建表失敗 後來發現原因 springboot載入時 是 預設當前路徑 或者上一級路徑下 , 而springboot 專案是三維定位 ,
hibernate關閉自動建表
表結構和資料總是在程式執行的時候無端的修改,折騰了好長時間,查了很長時間hibernate的資料庫對映檔案和介面程式,始終沒有發現有什麼錯誤,到最後才發現了它! <prop
hibernate無法自動建表的原因
假如啟動hibernate,並且資料庫已經建好; 假如啟動的時候報錯,專案啟動失敗,大多數情況是不能自動建表,可以根據報錯資訊,解決問題; 這裡我要說的是另外一種情況,假如專案啟動沒有報錯,一切正常,但是資料庫依然沒有自動建表,這裡很有可能的原因是資料庫驅動版本過低的原因; 大家可以把搞個新點的資料庫驅動版
Springboot 之 Hibernate自動建表(Mysql)
本文章來自【知識林】 引入Maven依賴包 <dependency> <groupId>org.springframework.boot</groupI
出現 Unable to instantiate default tuplizer,hibernate自動建表失敗,原因是在實體類中聲明瞭成員變數describe,而describe是mysql關鍵字
歡迎使用Markdown編輯器寫部落格 本Markdown編輯器使用StackEdit修改而來,用它寫部落格,將會帶來全新的體驗哦: Markdown和擴充套件Markdown簡潔的語法 程式碼塊高亮 圖片連結和圖片上傳 LaTex數學公式 UML序列圖和
Hiberntate不能自動建表的問題:hibernate.(*)
寫代碼 dial ddl ber pro nta auto OS div 今天寫代碼的時候發現啟動服務器之後不能自動建表了?wtf什麽鬼?最後發現了這個問題: hbm2ddl.auto前的hibernate.省略之後出的問題,可能是bug之後的版本應該會修復 <pro
hibernate不能自動建表:MySQLSyntaxErrorException: Table '' doesn't exist
mysql mysql5 nat nta exist ble property cep exception 修改前: <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect<
hibernate通過pojo自動建表操作
1. 多對一 如球員和球隊的關係:多個球員在同一個球隊中。 1.1 類圖 TeamPojo:屬性 + set/get public class TeamPojo{ private Integer teamId; private String teamName; private String team
springBoot使用jpa不自動建表問題
目錄結構 實體類: package test; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id;
hibernate自動建表 屬性填update 會報錯
自動建表 屬性填update 會報錯的解決方法 hibernate入門學習時,JUnit單元測試時,報錯 顯示以下錯誤: java.lang.ClassCastException: java.util.Collections$EmptyIte
Hibernate自動建表(使用DDL語句)
Gd上次和大家談到使用DDL語句實現自動建表失敗的問題,過了幾天再回頭看果然思路就變得清晰許多,原來是xxx.hbm.xml檔案的配置上出了問題,因為上次沒有用Junit進行測試,所以沒有看明白問題的描述,這裡不得不說一句,Junit真是個好東西,emmmmmm。Junit測
hibernate自動建表到資料庫及spring下自動建表到資料庫
Hibernate支援自動建表,在開發階段很方便,可以保證hbm與資料庫表結構的自動同步。 如何使用呢?很簡單,只要在hibernate.cfg.xml里加上如下程式碼 Xml程式碼<prope
Hibernate 不報錯卻不能自動建表
網上說有各種原因,什麼dialog配置不對了、jar包版本不相容了,但是我的原因卻不是。 之前配置檔案如下: <property name="hibernateProperties">
hibernate自動建表設定欄位型別為資料庫中為timestamp型別
1:專案需要,欄位應該設計為timestamp型別,但自動建表後總是被設定為datetime(當時用的資料庫為sqlserver) Google後,在配置檔案(Xxx.hbm.xml)中column新增 sql-type="timestamp" default="CUR
Hibernate不能自動建表
這是我第一天學習hibernate遇到的問題,糾結了一天終於解決了。 專案功能很簡單,就是儲存一條資料到資料庫。我完全照著尚矽谷佟剛老師的hibernate4.0的視訊寫的,結果執行一直出現找不到表的問題。 先看JUnit的Failure Trace報的錯 org.hibe
hibernate 根據註解好的實體類 自動建表
首先搭好框架 例如ssh然後 applicationContent.xml寫上這些<?xml version="1.0" encoding="UTF-8"?> <property name="driverClass" value="com.mys
java中根據hibernate配置檔案自動建表
1、對與java專案,做資料庫遷移時,都會用的資料指令碼。 2、當引入hibernate時,可以建立資料庫表的配置檔案。可以根據表的配置檔案自動在資料庫建表。(資料庫要預先建立好,因為hibernate只會建表,不會建庫) 步驟: 1)、在配置檔案 hibernate.cf
在spring中配置hibernate.hbm2ddl.auto=true自動建表
今天 在spring中配置了 hibernate 的hibernate.hbm2ddl.auto 屬性為update ,配置資訊如下: <property name="hibernateProperties"> <value> <!--
hibernate.hbm2ddl.auto為update無法自動建表
mysql5之前hibernate.dialect為org.hibernate.dialect.MySQLInnoDBDialect。 mysql5之後為org.hibernate.dialect.My