简介
使用Mybatis 我们都习惯使用逆向工程,下面就简单介绍以下离线版的逆向生成工具的使用。
Mybatis Generator,简称MBG,是Mybatis开发团队提供的一个很强大的代码生成器,可以生成数据库表对应的实体类、Mapper接口类、Mapper XML文件和Example对象等。
方法 / 步骤
笔者使用的的逆向生成工具是MybatisGeneratordCore-1.3.2,已经在生产环境使用几年,简单可靠。
首先打开离线资源包
Lib文件夹下:
generator.xml , generatorConfig.xml , generatorOracle.xml 分别是配置不同数据库的文件,比如是生成Mysql和Oracle 中的表。
打开Readme.txt 文件
java -jar mybatis.jar -configfile generator.xml -overwrite
使用Oracle驱动生成的逆向工具
java -jar mybatis.jar -configfile generatorOracle.xml -overwrite
查看相应的XML里面的配置,笔者使用的是MySQL, 就以MySQL为例:
<?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="D:\Java\MybatisGeneratordCore-1.3.2\mybatis-generator-core-1.3.2\lib\mysql-connector-5.1.8.jar" />
<context id="sysGenerator" targetRuntime="MyBatis3">
<property name="javaFileEncoding" value="UTF-8"/>
<commentGenerator>
<!-- 是否去掉生成注释 true:是 / 默认 false:否 -->
<property name="suppressAllComments" value="true" />
<!-- 是否输出表和列的Comment信息 true:是 / 默认为false:否 -->
<property name="addRemarkComments" value="true"/>
<!-- 是否去掉注释代时间戳 true:是 : false:否,默认yyyy-MM-dd HH:mm:ss(1.3.5-chinese-annotation修改版)-->
<property name="suppressDate" value="false" />
</commentGenerator>
<!-- 修改目标数据库的账号密码名称 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://192.168.1.1:3306/saas_pdd"
userId="root" password="123456">
</jdbcConnection>
<!-- 生成实体类 注意要确保是有这个文件夹 -->
<javaModelGenerator targetPackage="com.iooiee.entity"
targetProject="D:\Java\MybatisGenerator">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成SQL的xml文件 -->
<sqlMapGenerator targetPackage="com.iooiee.mappers"
targetProject="D:\Java\MybatisGenerator">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成mybatis 对应的接口层 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.iooiee.mappers" targetProject="D:\Java\MybatisGenerator">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 修改生成目标表的名称 -->
<table tableName="saas_memcard_base" domainObjectName="MemcardBase" enableCountByExample="false"
enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false">
<generatedKey column="ID" sqlStatement="MYSQL" identity="true" />
<!-- 对将要生成的表字段类型为text字段要单独配置 -->
<columnOverride column="support_store_ids" jdbcType="VARCHAR"></columnOverride>
<columnOverride column="extra_params" jdbcType="VARCHAR"></columnOverride>
</table>
<!-- 生成多张表依次配置累加 -->
<!-- <table tableName="t_message_info">
<columnOverride column="message_content" jdbcType="VARCHAR"></columnOverride>
</table>
<table tableName="t_message_info">
<columnOverride column="message_content" jdbcType="VARCHAR"></columnOverride>
</table> -->
</context>
</generatorConfiguration>
- 注意在配置文件中,修改成自己的配置,比如数据库配置,表配置,和文件路径配置。配置成功后,继续进行以下自己的操作
按照提示操作,将相关运行脚本粘贴到命令行:
java -jar mybatis.jar -configfile generator.xml -overwrite
上图提示成功,本次生成代码成功!!!
## 生成代码效果
xml文件:
参考资料 & 致谢
【1】 Mybatis代码生成器Mybatis-Generator使用详解
【2】 Mybatis逆向生成工具_独立版(非IDE集成版本)
【3】Mybatis高级查询(九)--Mybatis代码生成器的使用