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