Mybatis-generator代码生成工具
工欲善其事必先利其器,我们在写接口的时候会写实体类Entity或者Bean(属性,get、set方法),持久层接口xxxDao,映射文件xxxmapper.xml。这些简单重复的工作可以使用插件自动生成。
mybatis-generator能做什么?
能够生成po类(persistant object 持久对象,可以看成是与数据库中的表相映射的java对象),能生成mapper映射文件(其中包括基本的增删改查功能)、能生成mapper接口。
步骤1:修改pom.xml,添加mybatis-generator-maven-plugin插件
<!-- MyBatis-generator 插件反向生成类-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!--配置文件的位置-->
<configurationFile>src/test/resources/generator/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
步骤2:配置生成代码的配置文件generatorConfig.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>
<!--mysql 连接数据库jar 这里选择自己本地位置-->
<!--<classPathEntry location="C:\Users\RM\.m2\repository\mysql\mysql-connector-java\5.1.41\mysql-connector-java-5.1.41.jar"/>-->
<classPathEntry location="C:\Users\li\.m2\repository\mysql\mysql-connector-java\5.1.40\mysql-connector-java-5.1.40.jar"/>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<!--<jdbcConnection driverClass="com.mysql.jdbc.Driver"-->
<!--connectionURL="jdbc:mysql://rm-uf64lx5lrp12tme622o.mysql.rds.aliyuncs.com:3306/health" userId="weiduyiliao"-->
<!--password="_Weidu_Administor#com">-->
<!--</jdbcConnection>-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://rm-uf64lx5lrp12tme622o.mysql.rds.aliyuncs.com:3306/health?useUnicode=true" userId="weiduyiliao"
password="wdyl*#Mlj">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<javaModelGenerator targetPackage="mapper.weidu.bean"
targetProject="src/test/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置
如果maven工程只是单独的一个工程,targetProject="test/main/java"
若果maven工程是分模块的工程,targetProject="所属模块的名称",例如:
targetProject="ecps-manager-mapper",下同-->
<sqlMapGenerator targetPackage="mapper.weidu.mapper"
targetProject="src/test/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="mapper.weidu.dao"
targetProject="src/test/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表,根据指定的数据库表自动生成bean实体类、dao接口、mapper.xml文件 -->
<table tableName="common_organization" domainObjectName="OrgBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="common_examnationlnrjktj" domainObjectName="JktjBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="JY_SIGN" domainObjectName="JySignBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="WD_MB_DIABE_FOL" domainObjectName="MbDiabeFolBean" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
步骤3:执行插件生成代码
如果使用的是Intellij IDEA,推荐添加一个mybatis-generator的执行配置。
和添加tomcat类似,进入配置弹窗,点击+好,填入名称,选择目录,输入命令 mybatis-generator:generate -e ,点击OK。
所有生成的代码全部放在测试类,避免影响程序。
把生成的代码复制到正确的位置,并修改代码中的路径(容易出错遗漏)