日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

自动生成Mapper文件(基于Mybatis Maven插件)

發(fā)布時(shí)間:2025/7/14 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自动生成Mapper文件(基于Mybatis Maven插件) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自動(dòng)生成Mybatis的Mapper文件

 工作中使用mybatis時(shí)我們需要根據(jù)數(shù)據(jù)表字段創(chuàng)建pojo類、mapper文件以及dao類,并且需要配置它們之間的依賴關(guān)系,這樣的工作很瑣碎和重復(fù),mybatis官方也發(fā)現(xiàn)了這個(gè)問題,因此給我們提供了mybatis generator工具來幫我們自動(dòng)創(chuàng)建pojo類、mapper文件以及dao類并且會(huì)幫我們配置好它們的依賴關(guān)系。

實(shí)際上,最非常流行MyBatis-Plus中內(nèi)置了代碼生成器:采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,有超多自定義配置等,在這主要介紹Mybatis的自動(dòng)生成步驟。

插件依賴

直接在maven的pom.xml文件中復(fù)制粘貼即可。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.5</version><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>6.0.6</version></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.5</version></dependency></dependencies><configuration><!--允許移動(dòng)生成的文件 --><verbose>true</verbose><!-- 是否覆蓋 --><overwrite>true</overwrite><!-- 自動(dòng)生成的配置 --><configurationFile>src/main/resources/generatorConfig.xml</configurationFile></configuration></plugin></plugins> </build>

BUG提醒:mysql-connector-java的版本問題,如果你的驅(qū)動(dòng)是com.mysql.cj.jdbc.Driver,你就需要6.0.x的版本。如果是com.mysql.jdbc.Driver 則是5.1.x的版本。

注意

如果在工作中,你要使用Mybatis的反向工程生成文件,你應(yīng)該不能在項(xiàng)目pom.xml中引用上圖的依賴,那么你可以專門創(chuàng)建一個(gè)sringboot工具項(xiàng)目來生成文件,然后在拖動(dòng)到你工作項(xiàng)目中。其實(shí)我們最需要的是Mapper文件中的restMap,如果你的數(shù)據(jù)庫字段有30 40 個(gè)之多,手動(dòng)Mapper文件絕對會(huì)讓你懷疑人生。

配置generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!--導(dǎo)入屬性配置--><!-- context 是逆向工程的主要配置信息 --><!-- id:name --><!-- targetRuntime:設(shè)置生成的文件適用于那個(gè) mybatis 版本 --><context id="default" targetRuntime="MyBatis3"><!-- 生成的 Java 文件的編碼 --><property name="javaFileEncoding" value="UTF-8"/><!-- optional,旨在創(chuàng)建class時(shí),對注釋進(jìn)行控制 --><commentGenerator><property name="suppressDate" value="true"/><property name="suppressAllComments" value="true"/></commentGenerator><!--jdbc的數(shù)據(jù)庫連接 --><jdbcConnectiondriverClass="com.mysql.cj.jdbc.Driver"connectionURL= 你數(shù)據(jù)庫urluserId= 賬號password= 你的密碼 ></jdbcConnection><!-- 非必需,類型處理器,在數(shù)據(jù)庫類型和java類型之間的轉(zhuǎn)換控制--><javaTypeResolver><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- Model模型生成器,用來生成含有主鍵key的類,記錄類 以及查詢Example類targetPackage 指定生成的model生成所在的包名targetProject 指定在該項(xiàng)目下所在的路徑--><!--<javaModelGenerator targetPackage="com.mmall.pojo" targetProject=".\src\main\java">--><javaModelGenerator targetPackage="com.ke.likehouse.model" targetProject="./src/main/java"><!-- 是否允許子包,即targetPackage.schemaName.tableName --><property name="enableSubPackages" value="false"/><!-- 是否對model添加 構(gòu)造函數(shù),如果為true則不會(huì)生成ResultMap --><property name="constructorBased" value="false"/><!-- 是否對類CHAR類型的列的數(shù)據(jù)進(jìn)行trim操作 --><property name="trimStrings" value="true"/><!-- 建立的Model對象是否 不可改變 即生成的Model對象不會(huì)有 setter方法,只有構(gòu)造方法 --><property name="immutable" value="false"/></javaModelGenerator><!--mapper映射文件生成所在的目錄 為每一個(gè)數(shù)據(jù)庫的表生成對應(yīng)的SqlMap文件 --><!--<sqlMapGenerator targetPackage="mappers" targetProject=".\src\main\resources">--><sqlMapGenerator targetPackage="mybatis/mappers" targetProject="./src/main/resources"><property name="enableSubPackages" value="false"/></sqlMapGenerator><!-- 客戶端代碼,生成易于使用的針對Model對象和XML配置文件 的代碼type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper對象type="MIXEDMAPPER",生成基于注解的Java Model 和相應(yīng)的Mapper對象type="XMLMAPPER",生成SQLMap XML文件和獨(dú)立的Mapper接口--><!-- targetPackage:mapper接口dao生成的位置 --><!--<javaClientGenerator type="XMLMAPPER" targetPackage="com.mmall.dao" targetProject=".\src\main\java">--><javaClientGenerator type="XMLMAPPER" targetPackage="com.ke.likehouse.dao" targetProject="./src/main/java"><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!--生成的表--><!--domainObjectName:生成的domain類的名字,如果不設(shè)置,直接使用表名作為domain類的名字;可以設(shè)置為somepck.domainName,那么會(huì)自動(dòng)把domainName類再放到somepck包里面;--><!--enableInsert(默認(rèn)true):指定是否生成insert語句;--><!--enableSelectByPrimaryKey(默認(rèn)true):指定是否生成按照主鍵查詢對象的語句(就是getById或get);--><!--enableSelectByExample(默認(rèn)true):MyBatis3Simple為false,指定是否生成動(dòng)態(tài)查詢語句;--><!--enableUpdateByPrimaryKey(默認(rèn)true):指定是否生成按照主鍵修改對象的語句(即update);--><!--enableDeleteByPrimaryKey(默認(rèn)true):指定是否生成按照主鍵刪除對象的語句(即delete);--><!--enableDeleteByExample(默認(rèn)true):MyBatis3Simple為false,指定是否生成動(dòng)態(tài)刪除語句;--><!--enableCountByExample(默認(rèn)true):MyBatis3Simple為false,指定是否生成動(dòng)態(tài)查詢總條數(shù)語句(用于分頁的總條數(shù)查詢);--><!--enableUpdateByExample(默認(rèn)true):MyBatis3Simple為false,指定是否生成動(dòng)態(tài)修改語句(只修改對象中不為空的屬性);--><table tableName="agent" domainObjectName="Agent"enableCountByExample="false"enableUpdateByExample="false"enableDeleteByExample="false"enableSelectByExample="false"selectByExampleQueryId="false"></table><!-- geelynote mybatis插件的搭建 --></context> </generatorConfiguration>

上圖的配置文件中包含了幾乎所有你可能用到的參數(shù)配置并帶有注釋,最終在IDEA中你看到項(xiàng)目結(jié)構(gòu)應(yīng)該是這樣的:

執(zhí)行maven命令

IDEA 的右方有MAVEN工具欄

  • 方式一:通過IDEA的MAVEN工具執(zhí)行

  • 方式二:通過MAVEN命令
    配置命令:mybatis-generator:generate -e

  • 然后Run就好了:

    run成功后,你會(huì)在你配置的項(xiàng)目文件夾下看到生成好的代碼,然后基于此再做修改。

    可能出現(xiàn)的BUG

    如果你復(fù)制粘貼了代碼卻出現(xiàn)稀奇古怪的BUG,很有可能是:

  • 你的maven的配置文件問題
  • 引用的mysql-connector-java與driverClassName版本不匹配
  • 如果你的驅(qū)動(dòng)是com.mysql.cj.jdbc.Driver,你就需要6.x.x的版本。如果是com.mysql.jdbc.Driver 則是5.x.x的版本。

    轉(zhuǎn)載于:https://www.cnblogs.com/keeya/p/11247408.html

    總結(jié)

    以上是生活随笔為你收集整理的自动生成Mapper文件(基于Mybatis Maven插件)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。