所謂mybatis逆向工程,就是mybatis會根據咱們設計好的數據表,自動生成pojo、mapper、mapper.xml以及example類(用於添加條件,至關where語句後面的部分 ),咱們在開發的過程操做多個表,一個個去寫pojo類就已經夠麻煩了。經過mybatis逆向工程能夠把基本的配置自動完成,省了許多事,固然自動生成的代碼一般與業務相差甚遠,我基本用來生成pojo類,也能夠都生成,根據本身須要進行選擇。下面正式開始介紹mybatis官方提供的MyBatis Generator用來完成逆向工程工做。php
MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代碼生成器。它將爲全部版本的MyBatis以及2.2.0以後的iBATIS版本生成代碼。這將減小在設置對象、配置文件以及數據庫表交互方面的麻煩。MBG尋求對數據庫進行簡單的CRUD(增,查,改,刪)操做,但仍須要爲鏈接查詢或存儲過程手動編寫SQL和對象代碼。html
在實現逆向工程以前,須要準備相應jar或maven依賴。java
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.28</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.3</version>
</dependency>
複製代碼
環境準備好後,開始配置MyBatis Generator配置文件,主要配置數據庫裏鏈接和存放路徑,xml配置文件中均已註釋,官網MyBatis Generator配置文件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>
<!--配置數據庫信息 -->
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- suppressAllComments屬性值: true:自動生成實體類、SQL映射文件時沒有註釋 true:自動生成實體類、SQL映射文件,並附有註釋 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/generator" userId="root" password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 指定javaBean的生成位置 -->
<javaModelGenerator targetPackage="web.data" targetProject="./src.main.java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 指定sql映射文件生成位置 -->
<sqlMapGenerator targetPackage="web.mapper" targetProject="./src.main.java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 指定dao接口的生成位置,mapper接口 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="web.dao" targetProject="./src.main.java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 指定每一個表的生成策略 -->
<table tableName="cc_cfxx" domainObjectName="cfxx"></table>
</context>
</generatorConfiguration>
複製代碼
MyBatis Generator配置文件準備好後,執行java實現類的main方法即可生成相關代碼,官網java實現類web
public static void main(String[] args) throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("mybatis-generator.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);
}
複製代碼
mybatis是目前很流行的持久層框架,在使用這個框架中,編寫Mapping的映射文件工做量很大,而且手動書寫很容易出錯,咱們能夠利用Mybatis-Generator來幫咱們自動生成文件,大大縮減了咱們的開發時間。sql