使用maven的plugin插件 逆向快速生成PO/DO/mapper/mapper.xml 文件,其中各种细节配置看下面:
在MAVEN配置文件中需要添加:
<?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="/Users/shengwuyou/.m2/repository/mysql/mysql-connector-java/5.1.18/mysql-connector-java-5.1.18.jar" />
<context id="generateDoMapperXml" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://121.40.124.14:3306/face_permission"
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/DO类的位置 -->
<javaModelGenerator targetPackage="com.face.permission.mapper.domain"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件xml的生成位置
如果maven工程只是单独的一个工程,targetProject="src/main/java"
若果maven工程是分模块的工程,targetProject="所属模块的名称",例如:
targetProject="ecps-manager-mapper",下同-->
<sqlMapGenerator targetProject="src/main/resources"
targetPackage="mapper">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口类interface生成的位置 -->
<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
-->
<javaClientGenerator type="XMLMAPPER"
targetProject="src/main/java"
targetPackage="com.face.permission.mapper.dao">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="p_user" domainObjectName="PUser"
enableCountByExample="false" enableDeleteByExample="false"
enableUpdateByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
<table schema="" tableName="p_account" domainObjectName="PAccount"
enableCountByExample="false" enableDeleteByExample="false"
enableUpdateByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
<table schema="" tableName="p_token" domainObjectName="PToken"
enableCountByExample="false" enableDeleteByExample="false"
enableUpdateByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
2019-07-08:碰到问题:Mybatis配置出错 Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.XXX.BaseResultMap
解决:主要出现这个异常是在使用逆向工程Generator的时候执行了两次或多次,那工具是不会帮你把代码替换掉的,会直接加在后面,所以就导致了这样一个异常,建议在生成的时候先清空,再生成,就不会有这个问题了,或者后续记得删除也行.