MyBatis逆向工程,简称MBG。是一个专门为MyBatis框架使用者定制的代码生成器。可以快速的根据表生成对应的映射文件,接口,以及Bean类对象。
在Mybatis中,有一个可以自动对单表生成的增,删,改,查代码的插件。叫 mybatis-generator-core-1.3.2。
它可以帮我们对比数据库表之后,生成大量的这个基础代码。
这些基础代码有:
1、数据库表对应的javaBean对象
2、这些javaBean对象对应的Mapper接口
3、这些Mapper接口对应的配置文件
(一个"魔术",将p1变成p2,惊喜中夹杂着惊吓)
本例用到的数据库和数据表(数据请根据个人喜好添加)
create database mbg; use mbg; create table t_user( `id` int primary key auto_increment, `username` varchar(30) not null unique, `password` varchar(40) not null, `email` varchar(50) ); create table t_book( `id` int primary key auto_increment, `name` varchar(50), `author` varchar(50), `price` decimal(11,2), `sales` int, `stock` int );
和以前项目一样的的导入所需要的jar包和一直在使用的log4j.properties和mybatis.xml文件等,需要新掌握的是:
mbg.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> <!-- targetRuntime 表示你要生成的版本 MyBatis3 豪华版本 MyBatis3Simple CRUD标准版 --> <context id="DB2Tables" targetRuntime="MyBatis3Simple"> <!-- 去掉全部的注释 --> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- 连接数据库的信息 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mbg" userId="root" password="root"> </jdbcConnection> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- javaModelGenerator配置生成模型JavaBean targetPackage生成的javaBean的包名 targetProject生成之后在哪个工程目录下 --> <javaModelGenerator targetPackage="com.pojo" targetProject=".\src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- sqlMapGenerator生成sql的mapper.xml配置文件 targetPackage生成mapper.xml配置文件放的包名 --> <sqlMapGenerator targetPackage="com.mapper" targetProject=".\src"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- javaClientGenerator配置生成的Mapper接口 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.mapper" targetProject=".\src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 一个table标签,表示一个表 生成对应的javabean--> <table tableName="t_user" domainObjectName="User" ></table> <table tableName="t_book" domainObjectName="Book" ></table> </context> </generatorConfiguration>
生成mbyatis的代码(每次生成都要先把原来的给删了):
package mbg; import java.io.File; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; public class Runner { public static void main(String[] args) throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("mbg.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } }
然后运行后刷新项目便可得到一些没有费吹灰之力就可以使用的代码了
诸如此类