说明:配置文件只注释了用到的功能,如果需要详细的说明,可以前往官网:https://mybatis.org/generator/
第一步:引入依赖和插件
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>mybatis generator</id>
<phase>package</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<!--配置文件的位置-->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<!-- 允许移动生成的文件 -->
<verbose>true</verbose>
<!-- 是否覆盖-->
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
其中插件需要和标签pluginManagement同级,不要在其内部写,会报错,正确的应该是这样:
第二步:添加配置文件
需要修改其中的部分参数,例如数据库连接参数、mapper存放的位置等。
<?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="/Program Files/IBM/SQLLIB/java/db2java.zip" />--> <context id="DB2Tables" targetRuntime="MyBatis3"> <!-- 去掉自动生成的注释 --> <commentGenerator > <property name="suppressDate" value="true"/> <property name="suppressAllComments" value="true"/> </commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/db_czams" userId="root" password=""> </jdbcConnection> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!--生成的DataObject类存放位置(pojo)--> <javaModelGenerator targetPackage="com.czams.core.pojo" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成的映射文件存放位置--> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 生成的DAO所在位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.czams.core.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 生成对应表及表格--> <!-- <table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" >--> <!-- <property name="useActualColumnNames" value="true"/>--> <!-- <generatedKey column="ID" sqlStatement="DB2" identity="true" />--> <!-- <columnOverride column="DATE_FIELD" property="startDate" />--> <!-- <ignoreColumn column="FRED" />--> <!-- <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />--> <!-- </table>-->
<table tableName="tb_arch_type" domainObjectName="ArchTypeDao" enableCountByExample="false" enableDeleteByExample="false" enableUpdateByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
第三步:运行插件
如果第一步成功添加插件,那么在idea中可以直接运行自动生成插件
补充:多模块系统下的使用
如果系统是用maven构建的多模块系统,那么可能出现这种情况:接口和java对象不在一个模块下的,这种情况也是可以用自动生成工具的。只需要将相对路径改成绝对路径即可。例如:
<!--生成的DataObject类存放位置(pojo)-->
<javaModelGenerator targetPackage="com.czams.core.pojo" targetProject="C:/project/src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>