Java通過數據庫表生成實體類詳細過程
項目背景
最近在做的項目,涉及到數據庫的操作了,之前做的是直接調用接口,不用做存庫操作。
因此要增加大量特殊格式的實體類。比如我們用的是 JPA ,要增加一些注解,額外還有 lombok 的一些注解。
所以,這個項目的目的是,根據數據庫中的某張表,生成與之對應的實體類。使用的技術是Freemarker 模板引擎,自定義了實體的模板。
最終的目標是,生成實體類的內容即可。有需要的朋友,可以改改,直接生成java文件。我這里覺得 使用 swagger 生成代碼,放到最終的響應里,也是很不錯的。
使用的是 Java 11 版本,用到的技術有 lombok,swagger,springboot,spring-data,freemarker,druid。
項目代碼
項目代碼托管在以下位置。各位可以直接 pull 下來,運行。需要注意的是,改數據庫連接。
https://gitee.com/fengsoshuai/generate-entity-from-table
使用說明
配置相關
在 application.yml 文件中配置好自己的數據庫。
隨后啟動 GenerateEntityFromTableApplication 類。
控制臺會輸出:
Application 'GenerateEntity' is running! Access URLs:
Local: http://localhost:80
External: http://192.168.1.2:80
Doc: http://192.168.1.2:80/doc.html
訪問最后一行 Doc 對應的連接地址。會進入 swagger 的測試界面。
swagger操作
輸入參數后,點擊發(fā)送按鈕,在響應結果中會帶出你想要的結果,比如:
package org.feng.entity; import lombok.Data; import org.springframework.data.relational.core.mapping.Column; import org.springframework.data.relational.core.mapping.Table; /** * 寶寶寫的一實體類 * * @version v2.0 */ @Data @Table("student") public class StudentData { @Column("id") private Integer id; @Column("name") private String name; @Column("age") private Integer age; @Column("weight") private Double weight; @Column("height") private Double height; @Column("modified") private LocalDateTime modified; }
目前的缺點
目前的缺點是,沒有對LocalDateTime
等特殊類型做兼容,需要手動導入包。
以上的實體類,是從數據庫表中查 student 表,生成的。
我的數據表結構是:
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for student -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` int(0) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `age` int(0) NULL DEFAULT NULL, `weight` double NULL DEFAULT NULL, `height` double NULL DEFAULT NULL, `modified` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0), PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
到此這篇關于Java通過數據庫表生成實體類詳細過程的文章就介紹到這了,更多相關Java數據庫表生成實體類內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java實現(xiàn)樹形List與扁平List互轉的示例代碼
在平時的開發(fā)中,我們時常會遇到需要將"樹形List"與"扁平List"互轉的情況,本文為大家整理了Java實現(xiàn)樹形List與扁平List互轉的示例代碼,希望對大家有所幫助2023-05-05SpringBoot-RestTemplate實現(xiàn)調用第三方API的方式
RestTemplate?是由?Spring?提供的一個?HTTP?請求工具,它提供了常見的REST請求方案的模版,例如?GET?請求、POST?請求、PUT?請求、DELETE?請求以及一些通用的請求執(zhí)行方法?exchange?以及?execute,下面看下SpringBoot?RestTemplate調用第三方API的方式2022-12-12多模塊maven的deploy集成gitlab?ci自動發(fā)版配置
這篇文章主要為大家介紹了多模塊maven項目deploy集成gitlab?ci自動發(fā)版的配置流程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-02-02SpringBoot結合Mybatis實現(xiàn)創(chuàng)建數據庫表的方法
本文主要介紹了SpringBoot結合Mybatis實現(xiàn)創(chuàng)建數據庫表的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01SpringBoot通過AOP與注解實現(xiàn)入參校驗詳情
這篇文章主要介紹了SpringBoot通過AOP與注解實現(xiàn)入參校驗詳情,文章從相關問題展開全文內容詳情,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05Java guava monitor監(jiān)視器線程的使用詳解
工作中的場景中是否存在類似這樣的場景,需要提交的線程在某個觸發(fā)條件下執(zhí)行。本文主要就是使用guava中的monitor來優(yōu)雅的實現(xiàn)帶監(jiān)視器的線程2021-11-11spring boot@EnableXXXX注解編程模型講解
這篇文章主要介紹了spring boot@EnableXXXX注解編程模型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09