1. 程式人生 > >MyBatis逆向工程——MyBatis Generator (MBG)-簡單介紹與執行步驟(1)

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檔案