欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java通過數(shù)據(jù)庫表生成實(shí)體類詳細(xì)過程

 更新時(shí)間:2023年02月07日 11:11:18   作者:你家寶寶  
這篇文章主要介紹了Java通過數(shù)據(jù)庫表生成實(shí)體類,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

項(xiàng)目背景

最近在做的項(xiàng)目,涉及到數(shù)據(jù)庫的操作了,之前做的是直接調(diào)用接口,不用做存庫操作。

因此要增加大量特殊格式的實(shí)體類。比如我們用的是 JPA ,要增加一些注解,額外還有 lombok 的一些注解。

所以,這個(gè)項(xiàng)目的目的是,根據(jù)數(shù)據(jù)庫中的某張表,生成與之對(duì)應(yīng)的實(shí)體類。使用的技術(shù)是Freemarker 模板引擎,自定義了實(shí)體的模板。

最終的目標(biāo)是,生成實(shí)體類的內(nèi)容即可。有需要的朋友,可以改改,直接生成java文件。我這里覺得 使用 swagger 生成代碼,放到最終的響應(yīng)里,也是很不錯(cuò)的。

使用的是 Java 11 版本,用到的技術(shù)有 lombok,swagger,springboot,spring-data,freemarker,druid。

項(xiàng)目代碼

項(xiàng)目代碼托管在以下位置。各位可以直接 pull 下來,運(yùn)行。需要注意的是,改數(shù)據(jù)庫連接。

https://gitee.com/fengsoshuai/generate-entity-from-table

使用說明

配置相關(guān)

在 application.yml 文件中配置好自己的數(shù)據(jù)庫。

隨后啟動(dòng) GenerateEntityFromTableApplication 類。

控制臺(tái)會(huì)輸出:

    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 對(duì)應(yīng)的連接地址。會(huì)進(jìn)入 swagger 的測試界面。

swagger操作

輸入?yún)?shù)后,點(diǎn)擊發(fā)送按鈕,在響應(yīng)結(jié)果中會(huì)帶出你想要的結(jié)果,比如:

package org.feng.entity;
import lombok.Data;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;
/**
 * 寶寶寫的一實(shí)體類
 *
 * @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;
}

目前的缺點(diǎn)

目前的缺點(diǎn)是,沒有對(duì)LocalDateTime 等特殊類型做兼容,需要手動(dòng)導(dǎo)入包。

以上的實(shí)體類,是從數(shù)據(jù)庫表中查 student 表,生成的。

我的數(shù)據(jù)表結(jié)構(gòu)是:

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;

到此這篇關(guān)于Java通過數(shù)據(jù)庫表生成實(shí)體類詳細(xì)過程的文章就介紹到這了,更多相關(guān)Java數(shù)據(jù)庫表生成實(shí)體類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)樹形List與扁平List互轉(zhuǎn)的示例代碼

    Java實(shí)現(xiàn)樹形List與扁平List互轉(zhuǎn)的示例代碼

    在平時(shí)的開發(fā)中,我們時(shí)常會(huì)遇到需要將"樹形List"與"扁平List"互轉(zhuǎn)的情況,本文為大家整理了Java實(shí)現(xiàn)樹形List與扁平List互轉(zhuǎn)的示例代碼,希望對(duì)大家有所幫助
    2023-05-05
  • SpringBoot-RestTemplate實(shí)現(xiàn)調(diào)用第三方API的方式

    SpringBoot-RestTemplate實(shí)現(xiàn)調(diào)用第三方API的方式

    RestTemplate?是由?Spring?提供的一個(gè)?HTTP?請(qǐng)求工具,它提供了常見的REST請(qǐng)求方案的模版,例如?GET?請(qǐng)求、POST?請(qǐng)求、PUT?請(qǐng)求、DELETE?請(qǐng)求以及一些通用的請(qǐng)求執(zhí)行方法?exchange?以及?execute,下面看下SpringBoot?RestTemplate調(diào)用第三方API的方式
    2022-12-12
  • Java禁止使用finalize方法

    Java禁止使用finalize方法

    這篇文章主要介紹了Java禁止使用finalize方法,需要的朋友可以參考下
    2017-10-10
  • 多模塊maven的deploy集成gitlab?ci自動(dòng)發(fā)版配置

    多模塊maven的deploy集成gitlab?ci自動(dòng)發(fā)版配置

    這篇文章主要為大家介紹了多模塊maven項(xiàng)目deploy集成gitlab?ci自動(dòng)發(fā)版的配置流程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • SpringBoot結(jié)合Mybatis實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫表的方法

    SpringBoot結(jié)合Mybatis實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫表的方法

    本文主要介紹了SpringBoot結(jié)合Mybatis實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫表的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • SpringBoot通過AOP與注解實(shí)現(xiàn)入?yún)⑿r?yàn)詳情

    SpringBoot通過AOP與注解實(shí)現(xiàn)入?yún)⑿r?yàn)詳情

    這篇文章主要介紹了SpringBoot通過AOP與注解實(shí)現(xiàn)入?yún)⑿r?yàn)詳情,文章從相關(guān)問題展開全文內(nèi)容詳情,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 使用MyBatis 動(dòng)態(tài)update數(shù)據(jù)

    使用MyBatis 動(dòng)態(tài)update數(shù)據(jù)

    使用mybatis寫sql,需要?jiǎng)討B(tài)更新對(duì)象數(shù)據(jù),每次需要更新的字段不同,為了防止null空異常,就需要用動(dòng)態(tài)sql了,下面給大家分享一段代碼關(guān)于mybatis動(dòng)態(tài)update,需要的朋友參考下
    2016-11-11
  • Spring事務(wù)管理配置文件問題排查

    Spring事務(wù)管理配置文件問題排查

    這篇文章主要介紹了Spring事務(wù)管理配置文件問題排查,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java guava monitor監(jiān)視器線程的使用詳解

    Java guava monitor監(jiān)視器線程的使用詳解

    工作中的場景中是否存在類似這樣的場景,需要提交的線程在某個(gè)觸發(fā)條件下執(zhí)行。本文主要就是使用guava中的monitor來優(yōu)雅的實(shí)現(xiàn)帶監(jiān)視器的線程
    2021-11-11
  • spring boot@EnableXXXX注解編程模型講解

    spring boot@EnableXXXX注解編程模型講解

    這篇文章主要介紹了spring boot@EnableXXXX注解編程模型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論