mybatis-generator自動生成代碼插件使用詳解

mybatis-generator是一款在使用mybatis框架時,自動生成model,dao和mapper的工具,很大程度上減少了業務開發人員的手動編碼時間,今天自己研究了一下,也分享一下使用心得供大家簡單使用。

本人使用的是maven構建,首先需要在pom.xml文件添加mybatis-generator依賴包以及插件,配置如下:

dependencies中添加:

<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.2</version>
</dependency>

在build的plugins中添加:

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.2</version>
    <configuration>
       <!-- mybatis用於生成代碼的配置文件 -->
      <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
        <verbose>true</verbose>
        <overwrite>true</overwrite>
    </configuration>
</plugin>

上面就是pom.xml中需要添加的配置,接下來就是generatorConfig.xml文件的簡單介紹

複製代碼

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
 PUBLIC " -//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <classPathEntry
            location="/Users/yehaixiao/Maven/mysql/mysql-connector-java/5.1.30/mysql-connector-java.jar"/>
    <context id="my" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="false"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
     <!-- mysql數據庫連接 --> 
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/test" userId="root"
                        password="******"/>

     <!-- 生成model實體類文件位置 -->
        <javaModelGenerator targetPackage="com.ssmgen.demo.model"
                            targetProject="/Users/yehaixiao/asiainfo/ssm-demo/src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

     <!-- 生成mapper.xml配置文件位置 -->
        <sqlMapGenerator targetPackage="com.ssmgen.demo.mapper"
                         targetProject="/Users/yehaixiao/asiainfo/ssm-demo/src/main/java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!-- 生成mapper接口文件位置 -->
        <javaClientGenerator targetPackage="com.ssmgen.demo.mapper"
                             targetProject="/Users/yehaixiao/asiainfo/ssm-demo/src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
     <!-- 需要生成的實體類對應的表名,多個實體類複製多份該配置即可 -->
        <table tableName="TEST1" domainObjectName="Test"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>

    </context>
</generatorConfiguration>

複製代碼

另附帶一份Orcale的generator-config.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!--<plugin type="net.coderbee.mybatis.batch.BatchStatementHandler"></plugin>
        <plugin type="net.coderbee.mybatis.batch.BatchParameterHandler"></plugin>-->
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--數據庫鏈接地址賬號密碼-->
        <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
                        connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:test"
                        userId="xxxx" password="xxxx" >
            <!--開啓讀取數據庫註釋:爲了把註釋寫到相對應的註解裏面-->
            <property name="remarksReporting" value="true"></property>
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--生成Model類存放位置-->
        <javaModelGenerator targetPackage="com.shsoft.platform.domain" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <!--設置註解,%s佔位符,讀取數據庫字段註釋(多個註解用;分隔),一個佔位符讀取數據庫字段註釋,第二數據庫字段排序-->
            <property name="annotation" value="@Excel(name = &quot;%s&quot;, fixedIndex = %s);@ApiParam(value = &quot;%s&quot;)"/>
            <!--設置註解需要的包路徑,多個用,分隔-->
            <property name="annotationTargetPackage" value="cn.afterturn.easypoi.excel.annotation.Excel,io.swagger.annotations.ApiParam"/>
        </javaModelGenerator>
        <!--生成映射文件存放位置-->
        <sqlMapGenerator targetPackage="com.shsoft.platform.dao.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--生成Dao類存放位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.shsoft.platform.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!--生成service,serviceImpl-->
        <javaServiceGenerator targetPackage="com.shsoft.platform.service" targetProject="src/main/java"
                              implementationPackage="com.shsoft.platform.service">
        </javaServiceGenerator>
        
        <!--生成controller-->
        <javaControllerGenerator targetPackage="com.shsoft.platform.ctrl" targetProject="src/main/java">
            <property name="superClass" value="com.shsoft.platform.ctrl.BaseController"></property>
        </javaControllerGenerator>

        <!--生成對應表及類名,添加:enableInsertBatch(是否生成批量添加語句,目前只支持oracle),enableInsertBatchIgnore:批量添加語句中忽略的字段-->
        <table tableName="SYSTEM_NOTICE" domainObjectName="SystemNotice" enableCountByExample="true" enableUpdateByExample="true"
               enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="false" enableInsertBatch="true"
               enableListParam="true">
            <property name="enableInsertBatchIgnore" value="createDt"></property>
        </table>
    </context>
</generatorConfiguration>

到此爲止,所有的配置已完畢,如果在ecplise中使用,則右擊工程,maven build,添加命令mybatis-generator:generate,代碼生成完畢!

MyBatis-generator自動生成代碼詳解:https://blog.csdn.net/isea533/article/details/42102297

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章