日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

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

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

插件依賴(lài)

直接在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的版本問(wèn)題,如果你的驅(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中引用上圖的依賴(lài),那么你可以專(zhuān)門(mén)創(chuàng)建一個(gè)sringboot工具項(xiàng)目來(lái)生成文件,然后在拖動(dòng)到你工作項(xiàng)目中。其實(shí)我們最需要的是Mapper文件中的restMap,如果你的數(shù)據(jù)庫(kù)字段有30 40 個(gè)之多,手動(dòng)Mapper文件絕對(duì)會(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í),對(duì)注釋進(jìn)行控制 --><commentGenerator><property name="suppressDate" value="true"/><property name="suppressAllComments" value="true"/></commentGenerator><!--jdbc的數(shù)據(jù)庫(kù)連接 --><jdbcConnectiondriverClass="com.mysql.cj.jdbc.Driver"connectionURL= 你數(shù)據(jù)庫(kù)urluserId= 賬號(hào)password= 你的密碼 ></jdbcConnection><!-- 非必需,類(lèi)型處理器,在數(shù)據(jù)庫(kù)類(lèi)型和java類(lèi)型之間的轉(zhuǎn)換控制--><javaTypeResolver><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- Model模型生成器,用來(lái)生成含有主鍵key的類(lèi),記錄類(lèi) 以及查詢(xún)Example類(lèi)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"/><!-- 是否對(duì)model添加 構(gòu)造函數(shù),如果為true則不會(huì)生成ResultMap --><property name="constructorBased" value="false"/><!-- 是否對(duì)類(lèi)CHAR類(lèi)型的列的數(shù)據(jù)進(jìn)行trim操作 --><property name="trimStrings" value="true"/><!-- 建立的Model對(duì)象是否 不可改變 即生成的Model對(duì)象不會(huì)有 setter方法,只有構(gòu)造方法 --><property name="immutable" value="false"/></javaModelGenerator><!--mapper映射文件生成所在的目錄 為每一個(gè)數(shù)據(jù)庫(kù)的表生成對(duì)應(yīng)的SqlMap文件 --><!--<sqlMapGenerator targetPackage="mappers" targetProject=".\src\main\resources">--><sqlMapGenerator targetPackage="mybatis/mappers" targetProject="./src/main/resources"><property name="enableSubPackages" value="false"/></sqlMapGenerator><!-- 客戶(hù)端代碼,生成易于使用的針對(duì)Model對(duì)象和XML配置文件 的代碼type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper對(duì)象type="MIXEDMAPPER",生成基于注解的Java Model 和相應(yīng)的Mapper對(duì)象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類(lèi)的名字,如果不設(shè)置,直接使用表名作為domain類(lèi)的名字;可以設(shè)置為somepck.domainName,那么會(huì)自動(dòng)把domainName類(lèi)再放到somepck包里面;--><!--enableInsert(默認(rèn)true):指定是否生成insert語(yǔ)句;--><!--enableSelectByPrimaryKey(默認(rèn)true):指定是否生成按照主鍵查詢(xún)對(duì)象的語(yǔ)句(就是getById或get);--><!--enableSelectByExample(默認(rèn)true):MyBatis3Simple為false,指定是否生成動(dòng)態(tài)查詢(xún)語(yǔ)句;--><!--enableUpdateByPrimaryKey(默認(rèn)true):指定是否生成按照主鍵修改對(duì)象的語(yǔ)句(即update);--><!--enableDeleteByPrimaryKey(默認(rèn)true):指定是否生成按照主鍵刪除對(duì)象的語(yǔ)句(即delete);--><!--enableDeleteByExample(默認(rèn)true):MyBatis3Simple為false,指定是否生成動(dòng)態(tài)刪除語(yǔ)句;--><!--enableCountByExample(默認(rèn)true):MyBatis3Simple為false,指定是否生成動(dòng)態(tài)查詢(xún)總條數(shù)語(yǔ)句(用于分頁(yè)的總條數(shù)查詢(xún));--><!--enableUpdateByExample(默認(rèn)true):MyBatis3Simple為false,指定是否生成動(dòng)態(tài)修改語(yǔ)句(只修改對(duì)象中不為空的屬性);--><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工具欄

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

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

  • 然后Run就好了:

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

    可能出現(xiàn)的BUG

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

  • 你的maven的配置文件問(wèn)題
  • 引用的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插件)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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