国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**

這篇具有很好參考價值的文章主要介紹了【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

?
作為一名 Java 后端開發(fā),日常工作中免不了要生成數(shù)據(jù)庫表對應(yīng)的持久化對象 PO,操作數(shù)據(jù)庫的接口 DAO,以及 CRUD 的 XML,也就是 mapper。

Mybatis Generator 是 MyBatis 官方提供的一個代碼生成工具,完全可以勝任這個工作,不過最近在學(xué)習(xí)開發(fā)“編程喵??”開源網(wǎng)站的時候試用了一下 MyBatis-Plus 官方提供 AutoGenerator,發(fā)現(xiàn)配置更簡單,開發(fā)效率更高!于是就來給小伙伴們安利一波。

讓我們來通過一個 gif 感受一下 AutoGenerator 的強(qiáng)大。

1、導(dǎo)入 SQL 文件

編程喵使用的 MySQL 版本是 8.0,可以在鏈接上 MySQL 后使用 select version(); 命令查詢版本。

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**,相關(guān)技術(shù)積累,spring boot,mybatis,后端

打開 Navicat,把 SQL 文件導(dǎo)入到本地數(shù)據(jù)庫,

關(guān)閉鏈接,重新打開就可以看到導(dǎo)入后的數(shù)據(jù)庫 codingmore,里面一共 27 張表。

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**,相關(guān)技術(shù)積累,spring boot,mybatis,后端

先體驗 Mybatis Generator

第一步,在 pom.xml 文件中添加 MySQL+MyBatis 的依賴(Mybatis Generator 的前置條件)。

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

添加完成后,一定要執(zhí)行一次 Maven 重載(見下圖),確保 MyBatis 的依賴加載完畢后再執(zhí)行第二步。

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**,相關(guān)技術(shù)積累,spring boot,mybatis,后端

否則下一步可能不通過,但又得不到任何錯誤提示。不要問我為什么,踩過坑后痛苦的領(lǐng)悟。

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**,相關(guān)技術(shù)積累,spring boot,mybatis,后端

添加完成后,可以通過 Maven 插件來生成骨架代碼,也可以通過 Java 代碼來生成骨架代碼,這里以 Maven 插件的形式來演示。Java 代碼的形式可參照 Mybatis Generator:

Java實現(xiàn)Generator

第二步,在 pom.xml 文件中,添加 MyBatis Generator 插件,注意是在 build→plugins 下節(jié)點(diǎn)下添加。

<!-- MyBatis Generator 插件 -->
<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.7</version>
    <configuration>
        <!-- MyBatis Generator 生成器的配置文件-->
        <configurationFile>src/main/resources/mybatis-generator-config.xml</configurationFile>
        <!-- 允許覆蓋生成的文件,確定骨架代碼后就可以設(shè)為 false 了,免得覆蓋原有代碼 -->
        <overwrite>true</overwrite>
        <!-- 將當(dāng)前 pom 的依賴項添加到生成器的類路徑中-->
        <includeCompileDependencies>true</includeCompileDependencies>
    </configuration>
</plugin>

MyBatis Generator 插件目前最新版是 1.4.0,我們采用上一個穩(wěn)定版本 1.3.7,新版本容易有坑。

來看一下添加 MyBatis Generator 插件后 pom.xml 文件的結(jié)構(gòu)圖。

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**,相關(guān)技術(shù)積累,spring boot,mybatis,后端

只添加插件還不夠,還需要對其進(jìn)行配置,我們使用 configurationFile 元素來指定一個配置文件 mybatis-generator-config.xml:

<configurationFile>src/main/resources/mybatis-generator-config.xml</configurationFile>

由于數(shù)據(jù)庫表可能會發(fā)生變動,因此我們需要追加一個配置 <overwrite>true</overwrite>,允許覆蓋舊的文件。為了防止我們編寫的 SQL 語句被覆蓋掉,MyBatis Generator 只會覆蓋舊的 po、dao、而 *mapper.xml 不會覆蓋,而是追加。

Mybatis Generator 需要連接數(shù)據(jù)庫,所以還需要在 plugin 節(jié)點(diǎn)中添加數(shù)據(jù)庫驅(qū)動依賴,就像這樣:

<configuration>
</configuration>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

但我們在 pom.xml 文件中已經(jīng)添加過 MySQL 的鏈接驅(qū)動了,這里再添加就會顯得很多余。好在 Maven 為我們提供了 includeCompileDependencies 屬性,可以讓我們在插件中引用之前添加的依賴。

<includeCompileDependencies>true</includeCompileDependencies>

來看一下 mybatis-generator-config.xml 的位置。

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**,相關(guān)技術(shù)積累,spring boot,mybatis,后端

來看一下 mybatis-generator-config.xml 的內(nèi)容。

<generatorConfiguration>
    <context id="myContext" targetRuntime="MyBatis3" defaultModelType="flat">

        <!-- 注釋 -->
        <commentGenerator>
            <!-- 是否不生成注釋 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!-- jdbc連接 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/codingmore?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=Asia/Shanghai&amp;useSSL=false"
                        userId="root"
                        password="Huicheng123">
            <!--高版本的 mysql-connector-java 需要設(shè)置 nullCatalogMeansCurrent=true-->
            <property name="nullCatalogMeansCurrent" value="true"/>
        </jdbcConnection>

        <!-- 類型轉(zhuǎn)換 -->
        <javaTypeResolver>
            <!--是否使用bigDecimal,默認(rèn)false。
                false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer
                true,把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal-->
            <property name="forceBigDecimals" value="true"/>
        </javaTypeResolver>

        <!-- 生成實體類地址 -->
        <javaModelGenerator targetPackage="top.codingmore.mbg.po" targetProject="src/main/java">
            <!-- 是否針對string類型的字段在set方法中進(jìn)行修剪,默認(rèn)false -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>


        <!-- 生成Mapper.xml文件 -->
        <sqlMapGenerator targetPackage="top.codingmore.mbg.mapper" targetProject="src/main/resources">
        </sqlMapGenerator>

        <!-- 生成 XxxMapper.java 接口-->
        <javaClientGenerator targetPackage="top.codingmore.mbg.dao" targetProject="src/main/java" type="XMLMAPPER">
        </javaClientGenerator>


        <!-- schema為數(shù)據(jù)庫名,oracle需要配置,mysql不需要配置。
             tableName為對應(yīng)的數(shù)據(jù)庫表名
             domainObjectName 是要生成的實體類名(可以不指定,默認(rèn)按帕斯卡命名法將表名轉(zhuǎn)換成類名)
             enableXXXByExample 默認(rèn)為 true, 為 true 會生成一個對應(yīng)Example幫助類,幫助你進(jìn)行條件查詢,不想要可以設(shè)為false
             -->
        <table schema="" tableName="posts" domainObjectName="Posts"
               enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
               enableUpdateByExample="false" selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>
  • 配置文件至少得包含一個context
  • commentGenerator 用來配置生成的注釋
  • jdbcConnection 用來鏈接數(shù)據(jù)庫
  • javaTypeResolver 配置 JDBC 與 Java 的類型轉(zhuǎn)換規(guī)則
  • javaModelGenerator 配置 po 生成的包路徑和項目路徑
  • sqlMapGenerator 配置 mapper.xml 文件生成的目錄
  • javaClientGenerator 配置 mapper.java 文件生成的目錄
  • 一個 table 對應(yīng)一張表,如果想同時生成多張表,需要配置多個 table

更多配置信息可以參照下面這篇文章:

更多配置

到此為止,mybatis-generator-maven-plugin 就算是配置完成了,完整內(nèi)容如下圖所示:

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**,相關(guān)技術(shù)積累,spring boot,mybatis,后端

配置完成后可以雙擊運(yùn)行 Maven 的插件 Mybatis Generator,沒有問題的話,可以看到生成后的文件。

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**,相關(guān)技術(shù)積累,spring boot,mybatis,后端

再體驗 MyBatis-Plus 的 AutoGenerator

MyBatis-Plus(簡寫 MP)是 MyBatis 的增強(qiáng)工具,官方宣稱 MP 和 MyBatis 的關(guān)系就好像魂斗羅中的 1P 和 2P,可謂好基友,天下走。

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**,相關(guān)技術(shù)積累,spring boot,mybatis,后端

AutoGenerator 是 MyBatis-Plus 推出的代碼生成器,可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各個模塊的代碼,比 Mybatis Generator 更強(qiáng)大,開發(fā)效率更高。

通過前面的體驗,想必大家確實感覺到了 Mybatis Generator 的繁瑣,接下來,我們來體驗一下 AutoGenerator,對比過后,大家心里就有答案了。

第一步,在 pom.xml 文件中添加 AutoGenerator 的依賴。

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
</dependency>

第二步,添加模板引擎依賴,MyBatis-Plus 支持 Velocity(默認(rèn))、Freemarker、Beetl,這里使用 Velocity 引擎。

<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.3</version>
</dependency>

第三步,新建 CodeGenerator.java 文件,在 main 方法中添加 MyBatis-Plus 的 AutoGenerator 對象。

package top.codingmore.generator;

import com.baomidou.mybatisplus.generator.AutoGenerator;

/**
 *
 */
public class CodeGenerator {
    public static void main(String[] args) {
        // 代碼生成器
        AutoGenerator mpg = new AutoGenerator();
    }
}

在 main 方法中添加全局配置。

// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("小娃旺");
gc.setOpen(false);
gc.setDateType(DateType.ONLY_DATE);
gc.setSwagger2(true);
gc.setIdType(IdType.AUTO);
gc.setBaseColumnList(true);
gc.setBaseResultMap(true);
gc.setFileOverride(true);

mpg.setGlobalConfig(gc);

配置數(shù)據(jù)源。

// 數(shù)據(jù)源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/codingmore?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("1qa");

mpg.setDataSource(dsc);

第五步,配置包。

// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("top.codingmore.mpg");

更多配置項可以到官方查看:

https://baomidou.com/pages/061573/

完整代碼如下所示:

package top.codingmore.generator;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;

/**

 */
public class CodeGenerator {
    public static void main(String[] args) {
        // 代碼生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("小娃旺");
        gc.setOpen(false);
        gc.setDateType(DateType.ONLY_DATE);
        gc.setSwagger2(true);
        gc.setIdType(IdType.AUTO);
        gc.setBaseColumnList(true);
        gc.setBaseResultMap(true);
        gc.setFileOverride(true);

        mpg.setGlobalConfig(gc);

        // 數(shù)據(jù)源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/codingmore?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("Huicheng123");

        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("top.codingmore.mpg");
        mpg.setPackageInfo(pc);

        mpg.execute();
    }
}

再來看一下運(yùn)行后的效果,可以看到數(shù)據(jù)庫表對應(yīng)的 controller、service、entity、mapper 等等全有了——爽歪歪:

總結(jié)對比

對比 Mybatis 的 Generator 和 MyBatis-Plus 的 AutoGenerator,就可以得出這樣一條結(jié)論:后者的配置更簡單,開發(fā)效率也更高,功能也更強(qiáng)大——可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼。

MyBatis-Plus 的確配得上 Plus 啊,確實優(yōu)秀。

【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**,相關(guān)技術(shù)積累,spring boot,mybatis,后端文章來源地址http://www.zghlxwxcb.cn/news/detail-822026.html

到了這里,關(guān)于【無標(biāo)題】Spring Boot整合MyBatis-Plus,并通過AutoGenerator生成編程喵項目骨架代碼**的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 自動化生成代碼:MyBatis 的 Generator與MyBatis-Plus 的 AutoGenerator

    自動化生成代碼:MyBatis 的 Generator與MyBatis-Plus 的 AutoGenerator

    自動化生成代碼是現(xiàn)在一種非常常見的技術(shù),它可以大大提高開發(fā)效率,減少重復(fù)勞動。而在 Java 開發(fā)中,MyBatis 是一個非常流行的 ORM 框架,而其中的 Generator 和 MyBatis-Plus 中的 AutoGenerator 是兩個非常好用的自動化代碼生成工具,下面我們來分別介紹一下它們的使用。 MyBati

    2024年02月03日
    瀏覽(20)
  • spring boot mybatis-plus操作實踐

    1、先建一個數(shù)據(jù)表實體類 2、service目錄下新建接口IDeptService,然后擴(kuò)展mp的IService 3、service目錄的impl目錄下新建類 DeptServiceImpl,擴(kuò)展mp的ServiceImpl,實現(xiàn)接口IDeptService,然后注冊@Service 注解 4、DeptMapper 接口需要擴(kuò)展mp的BaseMapper接口 5、調(diào)試一下看看是否可以使用

    2024年02月01日
    瀏覽(24)
  • spring boot集成mybatis-plus——Mybatis Plus 查詢數(shù)據(jù)(圖文講解)

    spring boot集成mybatis-plus——Mybatis Plus 查詢數(shù)據(jù)(圖文講解)

    ?更新時間 2023-01-03 16:07:12 大家好,我是小哈。 本小節(jié)中,我們將學(xué)習(xí)如何通過 Mybatis Plus 查詢數(shù)據(jù)庫表中的數(shù)據(jù)。 在前面小節(jié)中,我們已經(jīng)定義好了一個用于測試的用戶表, 執(zhí)行腳本如下: 定義一個名為? User ?實體類: 不明白 Mybatis Plus 實體類注解的小伙伴,可參考前面

    2024年02月02日
    瀏覽(23)
  • spring boot+mybatis-plus配置讀寫分離

    對于mysql主從機(jī)制的讀寫分離,對于寫操作寫入主庫,讀取操作讀取從庫 一、安裝依賴 二、配置文件配置數(shù)據(jù)源 三、在service,如果是讀取操作的話,則需要加上注解@DS(“slave”)即可,可看如下示例

    2024年01月25日
    瀏覽(22)
  • spring boot集成mybatis-plus——Mybatis Plus 批量 Insert_新增數(shù)據(jù)(圖文講解)

    spring boot集成mybatis-plus——Mybatis Plus 批量 Insert_新增數(shù)據(jù)(圖文講解)

    ?更新時間 2023-01-10 16:02:58 大家好,我是小哈。 本小節(jié)中,我們將學(xué)習(xí)如何通過 Mybatis Plus 實現(xiàn) MySQL 批量插入數(shù)據(jù)。 先拋出一個問題:假設(shè)老板給你下了個任務(wù),向數(shù)據(jù)庫中添加 100 萬條數(shù)據(jù),并且不能耗時太久! 通常來說,我們向 MySQL 中新增一條記錄,SQL 語句類似如下:

    2024年02月04日
    瀏覽(28)
  • Spring Boot + MyBatis-Plus實現(xiàn)數(shù)據(jù)庫讀寫分離

    Spring Boot + MyBatis-Plus實現(xiàn)數(shù)據(jù)庫讀寫分離

    ??Spring Boot + MyBatis-Plus實現(xiàn)數(shù)據(jù)庫讀寫分離 ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:架構(gòu)設(shè)計 ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實戰(zhàn)項目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平有限,如果文中出現(xiàn)錯誤,希望

    2024年02月05日
    瀏覽(44)
  • 從零開始學(xué)Spring Boot系列-集成MyBatis-Plus

    從零開始學(xué)Spring Boot系列-集成MyBatis-Plus

    在Spring Boot應(yīng)用開發(fā)中,MyBatis-Plus是一個強(qiáng)大且易于使用的MyBatis增強(qiáng)工具,它提供了很多實用的功能,如代碼生成器、條件構(gòu)造器、分頁插件等,極大地簡化了MyBatis的使用和配置。本篇文章將指導(dǎo)大家如何在Spring Boot項目中集成MyBatis-Plus。 首先,確保你已經(jīng)安裝了Java開發(fā)環(huán)

    2024年04月08日
    瀏覽(75)
  • spring boot集成mybatis-plus——Mybatis Plus 新增數(shù)據(jù)并返回主鍵 ID(圖文講解)

    spring boot集成mybatis-plus——Mybatis Plus 新增數(shù)據(jù)并返回主鍵 ID(圖文講解)

    ?更新時間 2023-01-10 15:37:37 大家好,我是小哈。 本小節(jié)中,我們將學(xué)習(xí)如何通過 Mybatis Plus 框架給數(shù)據(jù)庫表新增數(shù)據(jù),主要內(nèi)容思維導(dǎo)圖如下: Mybatis Plus 新增數(shù)據(jù)思維導(dǎo)圖 為了演示新增數(shù)據(jù),在前面小節(jié)中,我們已經(jīng)定義好了一個用于測試的用戶表, 執(zhí)行腳本如下: 定義一

    2024年02月02日
    瀏覽(40)
  • spring boot集成mybatis-plus——Mybatis Plus 多表聯(lián)查(包含分頁關(guān)聯(lián)查詢,圖文講解)...

    spring boot集成mybatis-plus——Mybatis Plus 多表聯(lián)查(包含分頁關(guān)聯(lián)查詢,圖文講解)...

    ?更新時間 2023-01-03 21:41:38 大家好,我是小哈。 本小節(jié)中,我們將學(xué)習(xí)如何通過 Mybatis Plus 實現(xiàn) 多表關(guān)聯(lián)查詢 ,以及 分頁關(guān)聯(lián)查詢 。 本文以 查詢用戶所下訂單 ,來演示 Mybatis Plus 的關(guān)聯(lián)查詢,數(shù)據(jù)庫表除了前面小節(jié)中已經(jīng)定義好的用戶表外,再額外創(chuàng)建一張訂單表,然后

    2024年02月01日
    瀏覽(25)
  • Spring Boot3整合MyBatis Plus

    Spring Boot3整合MyBatis Plus

    目錄 1.前置條件 2.導(dǎo)坐標(biāo) 3.配置數(shù)據(jù)源 4.mybatis-plus基礎(chǔ)配置 5.配置mapper掃描路徑 6.MyBatis Plus代碼生成器整合 1.導(dǎo)坐標(biāo) 2.編寫代碼生成邏輯 7.整合Druid連接池 已經(jīng)初始化好一個spring boot項目且版本為3X,項目可正常啟動 初始化教程: 新版idea創(chuàng)建spring boot項目-CSDN博客 https://blog

    2024年01月23日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包