最近在测试mysql的时候,当我们在数据库当中新建了一个数据表的时候,需要用到mybatis。由于单表的增删改查的mapper文件以及对应的pojo基本上都是一个模式的,或者也是相差不远的,所以研究如何使用mybatis-generator逆向工程生成mapper文件以及pojo。
第一步:在maven工程当中的resource下面,创建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:\Res\mysql\mysql-connector-java\5.1.21\mysql-connector-java-5.1.21.jar" />
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root"
password="123456">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.lmash.mysqltest.generator.pojo"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置
如果maven工程只是单独的一个工程,targetProject="src/main/java"
若果maven工程是分模块的工程,targetProject="所属模块的名称",例如:
targetProject="ecps-manager-mapper",下同-->
<sqlMapGenerator targetPackage="com.lmash.mysqltest.generator.mapper"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.lmash.mysqltest.generator.mapper"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="wx_user_info"></table>
</context>
</generatorConfiguration>
在配置这个文件的过程当中,碰到了以下的问题。
第一个:
当时红色框框里面的字体变成了红色,鼠标放上去显示URI is not registerd。解决方式如下:http://blog.csdn.net/matthew_zhang/article/details/50757251
第二个问题:这里的location选择的是本地的位置,一般我们现在都用maven,那么就去找自己本地的maven仓库里面,mysql连接的jar包就可以了。
第三个问题:下面的这些,我是在我的工程里面,单独建了一个generator包,就可以了,至于里面的pojo包和mapper包,会在我们运行程序的时候新建出来,我这么做是由于我可能会对文件进行修改,不想他打乱我原来文件放置的位置。假如你没有什么可以修改的,你可以写你希望他出现的位置。
第三步:配置pom文件,在plugins节点下面增加这个plugin节点内容。
<!--为了测试mybatis逆向工程而新增的pom内容 2018年1月29日13:46:57--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <!--配置文件的位置--> <configurationFile>src/main/resources/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>通过以上的三个步骤,我们就配置好了逆向工程所需的配置,接下来就是运行了。
点击一下mybatis-generator:generate这个按钮,会出现下面的内容,代表成功。
里面出现的WARN提示是由于这个逆向工程需要配置log4j,而我使用的log是lsf4j,大家可以不去管他。然后再去我们配置文件出现的地方去看,会发现文件都已经生成好了。