mybatis generator生成代碼工具的使用

mybatis generator生成代碼工具的使用, 附demo

使用Hibernate時, 可以很方便的生成model,dao,和映射配置文件.在mybatis裏, 也有生成器, 即mybatis generator, 簡稱MBG. 下面爲大家介紹一下MBG的使用.

下載mybatis-generator-core-1.3.1-bundle.zip之後, 解壓得到mybatis-generator-core-1.3.1.jar, 即生成器的jar包, 將mybatis-3.0.6.jar和mybatis-generator-core-1.3.1.jar加入到項目的lib裏, 然後編寫一個生成器的配置文件generatorConfig.xml.

介紹一下genernatorConfig.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>
<properties resource="com/yuan/mybatis/mbg/util/generatorConfig.properties" />
<classPathEntry location="${classPath}" />
<context id="MBG" targetRuntime="MyBatis3" defaultModelType="conditional">
<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
<plugin type="org.mybatis.generator.plugins.MapperConfigPlugin">
<property name="fileName" value="GeneratedMapperConfig.xml" />
<property name="targetPackage" value="com.yuan.mybatis.mbg.util" />
<property name="targetProject" value="${targetProject}" />
</plugin>
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<jdbcConnection driverClass="${driverClass}"
connectionURL="${connectionURL}" userId="${userId}" password="${password}">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>

<javaModelGenerator targetPackage="${modelPackage}"
targetProject="${targetProject}">
<property name="enableSubPackages" value="true" />
</javaModelGenerator>

<sqlMapGenerator targetPackage="${sqlMapperPackage}"
targetProject="${targetProject}">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>

<javaClientGenerator type="XMLMAPPER"
targetPackage="${daoMapperPackage}" targetProject="${targetProject}">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table schema="minghan" tableName="sys_group" domainObjectName="Group">
<generatedKey column="groupId" sqlStatement="mysql"
identity="true" />
</table>
<table schema="minghan" tableName="sys_admin" domainObjectName="Admin"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>

</context>
</generatorConfiguration>

其中的properties元素裏引用了一個generatorConfig.properties配置文件是爲了方便移植的時候,只需修改resource的路徑值和generatorConfig.properties裏的值即進行生成操作.

generatorConfig.properties代碼如下:

classPath=D\:/ylink/myeclipse/MBG/lib/mysql-connector-java-5.0.7-bin.jar
targetProject=D\:/ylink/myeclipse/MBG/src
driverClass=com.mysql.jdbc.Driver
connectionURL=jdbc\:mysql\://127.0.0.1\:3306/minghan?useUnicode\=true&amp;characterEncoding\=UTF-8
userId=root
password=root
modelPackage=com.yuan.mybatis.mbg.model
sqlMapperPackage=com.yuan.mybatis.mbg.model.mapper
daoMapperPackage=com.yuan.mybatis.mbg.dao.mapper

其中, targetProject是工程的源代碼存放位置

classPath是數據庫驅動包的位置, modelPackage是存放model實體的包, 對應數據庫表, sqlMapperPackage是存放實體映射的XML配置文件, daoMapperPackage是存放Mapper接口的地方.

注意: 要事先建立這些包纔可以生成.

如果不想生成mybatis的註釋信息, 可以將commentGenerator裏的suppressAllComments的值設爲true,

table元素對應數據庫表.

<table schema="minghan" tableName="sys_admin" domainObjectName="Admin"
	enableCountByExample="false" enableUpdateByExample="false"
	enableDeleteByExample="false" enableSelectByExample="false"
	selectByExampleQueryId="false">
</table>

schema即爲數據庫名, tableName爲對應的數據庫表, domainObjectName是要生成的實體類, 如果想要mapper配置文件加入sql的where條件查詢, 可以將enableCountByExample等設爲true, 這樣就會生成一個對應domainObjectName的Example類, enableCountByExample等設爲false時, 就不會生成對應的Example類了.

配置文件配好了之後,

進行生成代碼, 既可以使用命令的方式, 也可以自已寫一個帶main的類來運行, 下面提供了一個帶main的運行類

MyBatisGeneratorTool.java

package com.yuan.mybatis.mbg.util;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
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.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class MyBatisGeneratorTool {
public static void main(String[] args) {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
String genCfg = "/generatorConfig.xml"; //src的一級目錄下
File configFile = new File(MyBatisGeneratorTool.class.getResource(genCfg).getFile());
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = null;
try {
config = cp.parseConfiguration(configFile);
} catch (IOException e) {
e.printStackTrace();
} catch (XMLParserException e) {
e.printStackTrace();
}
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = null;
try {
myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
} catch (InvalidConfigurationException e) {
e.printStackTrace();
}
try {
myBatisGenerator.generate(null);
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

運行此類即可生成對應於數據庫表的實體類, Mapper配置文件, Mapper接口, 生成後可以測試其可用性.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章