虽然MyBatis很方便,但是想要手写全部的mapper还是很累人的,好在MyBatis官方推出了自动化工具,可以根据数据库和定义好的配置直接生成DAO层及以下的全部代码,非常方便.
需要注意的是,虽然自动化工具需要一个配置文件,但是MyBatis的配置文件仍然不能少,自动化工具的配置文件用于对生成的代码的选项进行配置,MyBatis的配置文件才是运行时的主要配置文件.
这个工具叫做MyBatis_Generator,不过比较扯淡的是官方虽然推出了这个工具,不过在google code上面看到的工具仅仅是一个jar包而已,在用这个工具的时候需要在cmd下面执行命令才能根据配置文件生成所需的各种文件,下面是该jar的下载地址:
http://mybatis.googlecode.com/files/mybatis-generator-core-1.3.1-bundle.zip
后来我仔细挖掘了Google Code上的东西,发现官方提供的也有可以直接安装到Eclipse里面的插件,唯一让人不爽的是这个插件只能安装在Eclipse3.6以上的版本,目前大部分人用的都是3.5.2或者更低的版本,给个地址吧,想方便点的可以试试,请确认你的eclipse的版本或者Myeclipse所用的eclipse版本是3.6以上的,否则无法安装,下面是eclipse更新地址:
http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/
下面我要说的是针对cmd下操作的方法,插件操作方法超级简单和abator(ibatis 2.X的插件)的使用方法一样.
在类路径下面建立generatorConfig.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 url="file:///D:/softcode/mybatis.properties" />
<classPathEntry location="${classPath}" />
<context id="MBG" targetRuntime="MyBatis3" defaultModelType="conditional"> <!--targetRuntime 此属性用于指定生成的代码的运行目标。 -->
<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.easyway.app.core.mgr" />
<property name="targetProject" value="../java" />
</plugin>
-->
<plugin type="org.mybatis.generator.plugins.RenameExampleClassPlugin">
<property name="searchString" value="Example$" />
<property name="replaceString" value="Criteria" />
</plugin>
<commentGenerator>
<property name="suppressAllComments" value="false" />
<property name="suppressDate" value="true" />
</commentGenerator>
<jdbcConnection driverClass="${driverClass}" connectionURL="${connectionURL}" userId="${userName}" password="${password}"/>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" /> <!-- 类型解析器 -->
</javaTypeResolver>
<javaModelGenerator targetPackage="${modelPackage}" targetProject="../java"> <!-- 实体类 -->
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="${sqlMapperPackage}" targetProject="../resources"> <!-- 实体类SQL映射文件 -->
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="${daoMapperPackage}" targetProject="../java">
<property name="enableSubPackages" value="true" /> <!-- 接口 -->
</javaClientGenerator>
<table catalog="TBS" tableName="TEST_TEST" domainObjectName="LoginLog"
enableCountByExample="true" enableUpdateByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
selectByExampleQueryId="true">
</table>
</context>
</generatorConfiguration>
需要注意的是上面的targetProject此处应写成文件路径的形式,而不是项目路径,指定类文件生成到src的org.qiuqiu.vo包下面,如果是用插件的话targetProject直接写项目名称即可,比如直接写MyBatis_Generator.
上面我仅仅简单的写了些注释,稍后我会将详细的配置选项以附件的形式发上来
然后就开始要生成文件了,打开cmd,进入项目路径的lib下面,也就是含有mybatis-generator-core-1.3.1.jar文件的目录中,执行以下命令:
classPath=ojdbc14-10.2.0.2.jar
targetProject=xxxxx
driverClass=oracle.jdbc.driver.OracleDriver
connectionURL=jdbc:oracle:thin:@10.100.102.8:1521:xxx
userName=xxx
password=123456
modelPackage=xxxxxxxxxxxxxxxxxxxxxxxxxx
sqlMapperPackage=mybatis/mappers
daoMapperPackage=xxxxxxxxxxxxx
maven自动生成配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>generator</groupId> <artifactId>generator</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <configurationFile>generatorConfig.xml</configurationFile> </properties> <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.0</version> <configuration> <configurationFile>generatorConfig.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
- java -jar mybatis-generator-core-1.3.1.jar -configfile ../src/generatorConfig.xml -overwrite
OK了,刷新一遍目录,可以看到vo,dao,xml全都自动生成了.
附件中有一个示例项目已经含有了所需要的全部包,
另一个附件是配置选项的官方说明文档
再奉上一个MyBatis的官方eclipse插件,可以安装在eclipse3.6版本以上