MyBatis逆向工程——MyBatis Generator (MBG)-簡單介紹與執行步驟(1)
寫在前面:
Mybatis Generator是MyBatis和ibatis的程式碼生成器。主要生成如下:
(1)與表結構匹配的Java POJO(欄位名對應屬性)
(2)SQL對映XML檔案(檔案為配置中每個表上的簡單CRUD(增刪改查)函式生成SQL。)
生成的SQL語句有
insert
update by primary key
update by example (使用動態where子句)
delete by primary key
delete by example (使用動態where子句)
select by primary key
select by example (使用動態where子句)
count by example
(3)符合Spring框架的DAO介面java類
具體步驟
(一)建立Project:
簡略
(二)匯入jar包
(1)非maven方式:主要jar包:。其他的必要jar包如MyBatis,資料庫驅動同時需要。
具體依賴如下:
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
(三)建立MBG的配置檔案
建議在專案根路徑下新建mgb.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="MyBatis3Simple":生成簡單版的CRUD MyBatis3:豪華版 --> <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/ssm_crud" userId="root" password="root"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="true" /> </javaTypeResolver> <!-- 指定javaBean生成的位置targetPackage:目標包名targetProject:目標工程 --> <javaModelGenerator targetPackage="com.ssm.entity" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!--指定sql對映檔案生成的位置 --> <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 指定dao介面生成的位置,mapper介面 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.ssm.dao" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- table指定每個表的生成策略 --> <table tableName="emp" domainObjectName="Employee"></table> <table tableName="dep" domainObjectName="Department"></table> </context> </generatorConfiguration>
(四)執行MyBatis Generator
執行方式:命令列,ant方式,java方式,用eclipse功能
本文使用java方式
新建一個java類,使用junit測試方式或者main方式啟動:
示例程式碼:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
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 MBGTest {
@Test
public void testMbg() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("mbg.xml");//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);
}
}
直接執行即可。
執行完成重新整理project,可以看到MBG為我們自動建立的DAO層mapper介面、javaPojo類、mapper.xml檔案