逆向工程
什么是逆向工程:
mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…),可以让程序员将更多的精力放在繁杂的业务逻辑上。
企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码。
之所以强调单表两个字,是因为Mybatis逆向工程生成的Mapper所进行的操作都是针对单表的,也许你可能会觉得那这就有点鸡肋了,但是在大型项目中,很少有复杂的多表关联查询,所以作用还是很大的。
下载逆向工程:
![](https://img2018.cnblogs.com/blog/1490280/201811/1490280-20181114161407688-2048439687.png)
来自官网~
翻译过来就是:
- 从带有XML配置的命令提示符
- 作为具有XML配置的Ant任务
- 作为一个Maven插件
- 从另一个java程序,基于XML配置
- 从另一个java程序,基于java的配置
- 通过Eclipse插件
一般来说,我们会选择使用一个Java程序,基于XML配置来生成代码,下面来介绍具体操作。
这里是我的一个配置文件,还有jar包。
![](https://img2018.cnblogs.com/blog/1490280/201811/1490280-20181114161252381-1794024060.png)
一般要修改的内容!!!
- 数据库驱动、地址、用户名、密码
- POJO类、mapper接口、mapper映射文件生成的位置
- 指定数据表
这个是我 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>
<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="1111">
</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.juzhen.PO"
targetProject="./src">
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.juzhen.Mapper"
targetProject="./src">
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.juzhen.Mapper" targetProject="./src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table tableName="items"></table>
<table tableName="orders"></table>
<table tableName="orderdetail"></table>
<table tableName="user"></table>
</context>
</generatorConfiguration>
配置完之后,在主函数中加上这些代码,有异常上抛就完事了~
然后,把生成的Mapper,PO文件,复制到你需要的工程中。就可以用了~
我们会发现生成的方法中,有Example这样的单词,我们可以饮用包装类来实现我们想要的查询功能。
如果没有能满足你的语句,自己添加也是可以的!