日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

Springboot 之 Hibernate自动建表(Mysql)

發(fā)布時(shí)間:2023/12/18 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Springboot 之 Hibernate自动建表(Mysql) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。

?

  • 引入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中已經(jīng)包含了Hibernate所需要的相關(guān)依賴,所以只需要引入Jpa的依賴即可。

  • 創(chuàng)建配置文件

在application.properties中加一行:spring.profiles.active=dev

application-dev.properties配置文件的內(nèi)容如下:

server.port=80# Hibernate 相關(guān)配置## 方言 #hibernate.dialect=org.hibernate.dialect.MySQL5Dialect ## 顯示Sql hibernate.show_sql=true ## 自動(dòng)建表方式 #hibernate.hbm2ddl.auto= update ## 自動(dòng)掃描的包前綴 entitymanager.packagesToScan= com.zslin## 數(shù)據(jù)庫(kù)連接 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## 數(shù)據(jù)庫(kù)驅(qū)動(dòng) 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

注意:最關(guān)鍵的是最后兩個(gè)配置,spring.jpa.properties.hibernate.hbm2ddl.auto=update而不是hibernate.hbm2ddl.auto=update,使用了Jpa所以鍵名稱需要有相應(yīng)調(diào)整,否則不會(huì)自動(dòng)建表

spring.jpa.properties.hibernate.hbm2ddl.auto有幾種配置:

  • create:每次加載Hibernate時(shí)都會(huì)刪除上一次生成的表,然后重新生成新表,即使兩次沒(méi)有任何修改也會(huì)這樣執(zhí)行,這就導(dǎo)致每次啟動(dòng)都是一個(gè)新的數(shù)據(jù)庫(kù),也是導(dǎo)致數(shù)據(jù)丟失的重要原因。

  • create-drop:每次加載Hibernate時(shí)都會(huì)生成表,但當(dāng)SessionFactory關(guān)閉時(shí),所生成的表將自動(dòng)刪除。

  • update:最常用的屬性值,第一次加載Hibernate時(shí)創(chuàng)建數(shù)據(jù)表(前提是需要先有數(shù)據(jù)庫(kù)),以后加載HIbernate時(shí)只會(huì)根據(jù)model更新,即使model已經(jīng)刪除了某些屬性,數(shù)據(jù)表也不會(huì)隨之刪除字段。

  • validate:每次加載Hibernate時(shí)都會(huì)驗(yàn)證數(shù)據(jù)表結(jié)構(gòu),只會(huì)和已經(jīng)存在的數(shù)據(jù)表進(jìn)行比較,根據(jù)model修改表結(jié)構(gòu),但不會(huì)創(chuàng)建新表。

具體配置可參考文章《Springboot 之 文件結(jié)構(gòu)和配置文件》

  • 創(chuàng)建Model實(shí)體類
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)才會(huì)自動(dòng)增長(zhǎng)

2、 在需要重新設(shè)置表字段名的屬性上加注釋@Column(name = "字段名")即可。

3、 在類名上添加注釋:@Entity和@Table(name = "t_user"),t_user是表名

  • 啟動(dòng)項(xiàng)目

啟動(dòng)項(xiàng)目后在study05數(shù)據(jù)庫(kù)中將出現(xiàn)t_user的數(shù)據(jù)表,且存在相應(yīng)的表字段。

示例代碼:https://github.com/zsl131/spring-boot-test/tree/master/study05

?

總結(jié)

以上是生活随笔為你收集整理的Springboot 之 Hibernate自动建表(Mysql)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。