一、逆向工程的作用
简单来说,就是替我们生成Java代码。
之前使用Mybatis的Mapper代理方法开发,还需要自己创建实体类,而且属性还得和数据库中的字段对应。这着实是机械化的而且比较麻烦的事,而机械化的事情正是代码所擅长的,于是Mybatis官方就提供了MyBatis Generator ,可以通过简单的配置替我们针对单表自动生成mapper接口,mapper.xml,以及实体类。
二、使用
1. 导包
就需要添加一个jar包
当然,mybatis核心包以及数据库驱动包还是和之前使用Mybatis的时候一样。
2.创建配置文件
名称、位置随意。
配置文件里的内容在MyBatis Generator官网上可以直接复制。官网网址:http://www.mybatis.org/generator/running/runningWithJava.html
进去之后点击XML Configuration Reference 把右侧的代码复制。
这里我贴一份我自己的配置文件,我也是官网复制的,只是添加了一些注释。
<?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> <context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是;false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 数据库连接的信息:驱动类,连接地址,用户名,密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/xtkj"
userId="root"
password="root">
</jdbcConnection> <!-- 默认为false,把JDBC DECIMAL 和 NUMERIC 类型解析为Integer,为true时把 把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal-->
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver> <!-- 生成po类的位置 -->
<javaModelGenerator targetPackage="com.xtkj.ssm.pojo" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--mapper映射文件 生成的位置-->
<sqlMapGenerator targetPackage="com.xtkj.ssm.mapper" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.xtkj.ssm.mapper" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator> <!-- 指定数据库表 -->
<table tableName="tb_user"></table> </context>
</generatorConfiguration>
需要改动的就是数据库连接信息(我用的是Mysql)、实体类和mepper映射文件生成的位置、以及对应的数据库中的数据表名
3. 执行生成程序
同样是可以在官网复制,放在main方法或测试方法中执行就可以了,只需要改动对应的配置文件名。这里注意路径要写对,我的就是config/generatorConfig.xml,如果直接放在了src目录下就写 src/generatorConfig.xml。(Mybatis逆向工程为我们提供了多种使用方式,这里我推荐使用xml配置,用Java代码生成)
到这里,逆向工程的初步使用就完成了,以下是我执行后的目录结构。执行完记得刷新一下。
可以看到mapper包和pojo包下的文件以及其中的内容都自动生成了。比之前方便多了,我就指定了一张表,所以只有一个 mapper.java 和一个 mapper.xml,当然在配置文件里也可以指定多张表。这里值得一说的是相比之前自己写,逆向工程pojo包下多了一个*Example.java文件,这个类是用来自定义条件查询的。具体的使用可以去看我的下一篇博客。