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>

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

注意:最關鍵的是最后兩個配置,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

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450719.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450719.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450719.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring全家桶面試真題

文章目錄1. Spring Boot1.1 說說你對Spring Boot的理解1.2 Spring Boot Starter有什么用&#xff1f;1.3 介紹Spring Boot的啟動流程1.4 Spring Boot項目是如何導入包的&#xff1f;1.5 請描述Spring Boot自動裝配的過程1.6 說說你對Spring Boot注解的了解2. Spring2.1 請你說說…

WSDL測試webservice接口記錄

收到一個事情&#xff0c;需要對接第三方API&#xff0c;對方給了個service&#xff0c;看了一下&#xff0c;原來是webservices的。 上一次測試webervice的接口&#xff0c;還是至少八九年前的時候了&#xff0c;這種相對比較老舊的也好久不在使用。 于是&#xff0c;簡單搞了…

idea窗口下方滾動條不明顯設置

在使用idea時&#xff0c;下方的滾動條老是顯示不明顯&#xff0c;每次點擊拖拽都很費勁&#xff0c;在網上找了很多相關設置&#xff0c;最后確定了一個最好的辦法解決問題&#xff1a; Shift &#xff08;上檔&#xff09; 鼠標滾動&#xff0c;這樣就可以橫向翻滾了&#…

把握本質規律——《數學之美》作者吳軍

無論是互聯網&#xff0c;還是手機、電視&#xff0c;現代通信都遵循信息論的規律&#xff0c;整個信息論的基礎都是數學。搜索引擎、語音識別、機器翻譯也都是我們生活中離不開的技術&#xff0c;數學也是解決這些問題的最好工具。在《浪潮之巔》出版后&#xff0c;吳軍將蘊含…

Hibernate4 注解方法說明

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.類級別注解 Entity 映射實體類 Table 映射數句庫表 Entity(name"tableName") - 必須&#xff0c;注解將一個類聲明…

消息隊列常見面試題

文章目錄2. 消息隊列2.1 MQ有什么用&#xff1f;2.2 說一說生產者與消費者模式2.3 消息隊列如何保證順序消費&#xff1f;2.4 消息隊列如何保證消息不丟&#xff1f;2.5 消息隊列如何保證不重復消費&#xff1f;2.6 MQ處理消息失敗了怎么辦&#xff1f;2.7 請介紹消息隊列推和拉…

Mybatis 詳解--- 一級緩存、二級緩存

2019獨角獸企業重金招聘Python工程師標準>>> Mybatis 為我們提供了一級緩存和二級緩存&#xff0c;可以通過下圖來理解&#xff1a; ①、一級緩存是SqlSession級別的緩存。在操作數據庫時需要構造sqlSession對象&#xff0c;在對象中有一個數據結構&#xff08;Hash…

我的nabcd

我們組要做的軟件是一款MP3播放軟件&#xff0c;名字叫TDG音樂 N&#xff08;need需求&#xff09;&#xff0c;由于現在版權越來越被重視&#xff0c;許多播放軟件里面的大部分歌曲都是收費的&#xff0c;不想花錢又想聽可怎么辦呢&#xff0c;只能在網上找免費資源&#xff0…

【C/C++和指針】深度解析---指針與數組 【精華】

一&#xff0c;引例子 二維數組可以使用指向數組的指針代替&#xff0c;而指針數組才可以用指向指針的指針代替。 [html] view plaincopy#include<iostream> using namespace std; void main() { char *a[]{"Hello","the","World&q…

Redis常見面試題詳解

文章目錄1. Redis1.1 Redis可以用來做什么&#xff1f;1.2 Redis和傳統的關系型數據庫有什么不同&#xff1f;1.3 Redis有哪些數據類型&#xff1f;1.4 Redis是單線程的&#xff0c;為什么還能這么快&#xff1f;1.5 Redis在持久化時fork出一個子進程&#xff0c;這時已經有兩個…

IntelliJ 創建main函數、for循環、輸出語句快捷鍵

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 今天偶然發現了IntelliJ中 創建main函數的快捷鍵&#xff0c;依次還有for循環&#xff0c;System.out.println(); 在編寫代碼的時候直接…

CentOS新增用戶并授予sudo權限

2019獨角獸企業重金招聘Python工程師標準>>> 新增用戶 添加用戶useradd demo設置用戶密碼passwd demo授予sudo權限 輸入以下命令&#xff0c;編輯sudoers配置&#xff1a;visudo找到以下行root ALL(ALL) ALL增加以下內容&#xff1a;demo ALL(ALL) ALL保存后登錄dem…

跨站腳本功攻擊,xss,一個簡單的例子讓你知道什么是xss攻擊

跨站腳本功攻擊&#xff0c;xss&#xff0c;一個簡單的例子讓你知道什么是xss攻擊 一、總結 一句話總結&#xff1a;比如用戶留言功能&#xff0c;用戶留言中寫的是網頁可執行代碼&#xff0c;例如js代碼&#xff0c;然后這段代碼在可看到這段留言的不同一戶的顯示上就會執行。…

用業績建立信任

當年從香港到美國&#xff0c;對于中學畢業的郭尊華來說&#xff0c;算是一個失敗。他盡管家境普通&#xff0c;但因為成績不佳進不了香港的大學&#xff0c;不得不遠赴美國讀書。在課余做過挖地、當侍者等多份工作的他&#xff0c;在大三的時候終于得到一份初級工程師的工作。…

idea 快捷鍵 小結

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。1.setting 打開快捷鍵&#xff1a;ctrl alt s 在 file - setting 中。 2.回到默認設置&#xff1a;刪除如下路徑的文件夾 C:\Users…

Jenkins常用插件

Generic Webhook Trigger Plugin觸發器webhook用戶觸發構建Deploy to container Plugin部署到tomcatGradle Plugin Gradle插件構建項目Maven Plugin Maven插件構建項目Git Plugin Git插件克隆項目GitHub plugin GitHub插件集成githubSSH Slaves plugin SSH插件用于遠程登錄Buil…

spark廣播變量 和 累加器

1 為什么使用廣播變量 和 累加器 變量存在的問題&#xff1a;在spark程序中&#xff0c;當一個傳遞給Spark操作(例如map和reduce)的函數在遠程節點上面運行時&#xff0c;Spark操作實際上操作的是這個函數所用變量的一個獨立副本。這些變量會被復制到每臺機器上&#xff0c;并且…

分布式常見面試題詳解

文章目錄1. 分布式1.1 什么是CAP原則&#xff1f;1.2 說一說你對高并發的理解1.3 如何實現分布式存儲&#xff1f;1.4 說一說你對分布式事務的了解1.5 分布式系統如何保證最終一致性&#xff1f;1.6 談談你對分布式的單點問題的了解1.7 HTTP和RPC有什么區別&#xff1f;1.7 HTT…

C11標準委員會成員解讀C語言新標準

導讀&#xff1a;C語言國際標準新的新草案之前已經公布&#xff0c;新標準提高了對C的兼容性&#xff0c;并將新的特性增加到C語言中。此外支持多線程的功能也受到了開發者的關注&#xff0c;基于ISO/IEC TR 19769:2004規范下支持Unicode&#xff0c;提供更多用于查詢浮點數類型…

如何將拷貝過來的數據 *.ibd 文件生效

1.將拷貝的數據文件 "qqq.idb"放在自己的數據庫中. 一般存放在 mysql/ data/ databasename 下 2. "qqq.idb" 改個名字-->"qqq--.idb", 主要是避免沖突&#xff01; 3.執行 create table qqq(...) 語句&#xff0c;此時除了會生成一個 qqq…