idea根據(jù)實(shí)體類生成數(shù)據(jù)庫表的流程步驟
引言
在開發(fā)的時(shí)候,經(jīng)常會(huì)遇到數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)無法滿足業(yè)務(wù)的需求,需要去改動(dòng)數(shù)據(jù)庫表,我們就需要去設(shè)計(jì)數(shù)據(jù)庫的字段,然后又回來增加實(shí)體類里的字段,這樣是不是很麻煩?今天我們就來解決這個(gè)問題,只需要直接修改我們定義的實(shí)體類,然后在我們啟動(dòng)項(xiàng)目時(shí)數(shù)據(jù)庫就會(huì)自動(dòng)對(duì)應(yīng)我們實(shí)體類進(jìn)行修改,大大減少了麻煩。
實(shí)現(xiàn)步驟
1.導(dǎo)入依賴
<!-- jpa 依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
2. yml配置文件
spring: jpa: generate-ddl: true hibernate: ddl-auto: update
jpa:hibernate:ddl-auto: update
是hibernate的配置屬性,其主要作用是:自動(dòng)創(chuàng)建、更新、驗(yàn)證數(shù)據(jù)庫表結(jié)構(gòu)。該參數(shù)的幾種配置如下:
- create:每次加載hibernate時(shí)都會(huì)刪除上一次的生成的表,然后根據(jù)你的model類再重新來生成新表,哪怕兩次沒有任何改變也要這樣執(zhí)行,這就是導(dǎo)致數(shù)據(jù)庫表數(shù)據(jù)丟失的一個(gè)重要原因。
- create-drop:每次加載hibernate時(shí)根據(jù)model類生成表,但是sessionFactory一關(guān)閉,表就自動(dòng)刪除。
- update:最常用的屬性,第一次加載hibernate時(shí)根據(jù)model類會(huì)自動(dòng)建立起表的結(jié)構(gòu)(前提是先建立好數(shù)據(jù)庫),以后加載hibernate時(shí)根據(jù)model類自動(dòng)更新表結(jié)構(gòu),即使表結(jié)構(gòu)改變了但表中的行仍然存在不會(huì)刪除以前的行。要注意的是當(dāng)部署到服務(wù)器后,表結(jié)構(gòu)是不會(huì)被馬上建立起來的,是要等應(yīng)用第一次運(yùn)行起來后才會(huì)。
- validate:每次加載hibernate時(shí),驗(yàn)證創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu),只會(huì)和數(shù)據(jù)庫中的表進(jìn)行比較,不會(huì)創(chuàng)建新表,但是會(huì)插入新值。
3.編寫實(shí)體類
@Data @AllArgsConstructor @NoArgsConstructor @Entity @Table(name = "admin") public class Admin { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @Column(name = "user_name",length = 20, unique = true, nullable = false) private String username; @Column(name = "password",length = 20, nullable = false) private String password; }
完成了上面的步驟后,只需要啟動(dòng)項(xiàng)目,我們就完成了根據(jù)實(shí)體類生成數(shù)據(jù)庫表的操作,是不是很簡(jiǎn)單。
查看數(shù)據(jù)庫,表已經(jīng)生成,并且字段也是按照我們的要求定義的
如果我們需要新增字段,只需要在實(shí)體類中新增字段即可,比如,我在admin中增加了一個(gè)地址字段
然后重新啟動(dòng)項(xiàng)目
剛剛新定義的字段數(shù)據(jù)庫添加了,對(duì)應(yīng)的注釋也有了。大功告成!
到此這篇關(guān)于idea根據(jù)實(shí)體類生成數(shù)據(jù)庫表的流程步驟的文章就介紹到這了,更多相關(guān)idea實(shí)體類生成數(shù)據(jù)庫表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot整合log4j2及MQ消費(fèi)處理系統(tǒng)日志示例
這篇文章主要為大家介紹了spring boot整合log4j2及MQ消費(fèi)處理系統(tǒng)日志的示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03spring?controller層引用service報(bào)空指針異常nullpointExceptio問題
這篇文章主要介紹了spring?controller層引用service報(bào)空指針異常nullpointExceptio問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Spring Boot集成Redis實(shí)現(xiàn)緩存機(jī)制(從零開始學(xué)Spring Boot)
這篇文章主要介紹了Spring Boot集成Redis實(shí)現(xiàn)緩存機(jī)制(從零開始學(xué)Spring Boot),需要的朋友可以參考下2017-04-04Java通過反射,如何動(dòng)態(tài)修改注解的某個(gè)屬性值
這篇文章主要介紹了Java通過反射,動(dòng)態(tài)修改注解的某個(gè)屬性值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java實(shí)現(xiàn)curl調(diào)用帶參數(shù)接口方法
本文主要介紹了Java實(shí)現(xiàn)curl調(diào)用帶參數(shù)接口方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04關(guān)于idea中SpringBoot啟動(dòng)失敗的坑
這篇文章主要介紹了關(guān)于idea中SpringBoot啟動(dòng)失敗的坑,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03解析Java的可變長(zhǎng)參數(shù)列表及其使用時(shí)的注意點(diǎn)
這篇文章主要介紹了解析Java的可變參數(shù)列表及其使用時(shí)的注意點(diǎn),注意可變參數(shù)必須位于最后一項(xiàng),需要的朋友可以參考下2016-03-03