由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy到项目工程中即可。
使用自动生成有很多方式,可以在eclipse中安装插件,但是以下将要介绍的这种方式我认为很轻松,最简单,不需要装插件,只需要下几个jar包即可,把它们放在一个目录下面。
其中的generatorConfig.xml是需要我们来配置的文件,配置如下:
01 | <? xml version = "1.0" encoding = "UTF-8" ?> |
02 | <!DOCTYPE generatorConfiguration |
03 | PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" |
05 | < generatorConfiguration > |
07 | < classPathEntry location = "mysql-connector-java-5.1.25-bin.jar" /> |
08 | < context id = "DB2Tables" targetRuntime = "MyBatis3" > |
10 | < property name = "suppressDate" value = "true" /> |
12 | < property name = "suppressAllComments" value = "true" /> |
18 | < property name = "forceBigDecimals" value = "false" /> |
21 | < javaModelGenerator targetPackage = "mybatis.pojo" targetProject = "src" > |
22 | < property name = "enableSubPackages" value = "true" /> |
23 | < property name = "trimStrings" value = "true" /> |
26 | < sqlMapGenerator targetPackage = "mybatis.mapping" targetProject = "src" > |
27 | < property name = "enableSubPackages" value = "true" /> |
30 | < javaClientGenerator type = "XMLMAPPER" targetPackage = "mybatis.dao" targetProject = "src" > |
31 | < property name = "enableSubPackages" value = "true" /> |
32 | </ javaClientGenerator > |
34 | < table tableName = "tb_config" domainObjectName = "Config" enableCountByExample = "false" enableUpdateByExample = "false" enableDeleteByExample = "false" enableSelectByExample = "false" selectByExampleQueryId = "false" ></ table > |
36 | </ generatorConfiguration > |
当以上这些完成之后,只需要打开控制台,进入lib目录下,执行脚本:
[shengke@localhost lib]$ java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
运行截图如下:
实例:
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<classPathEntry location="D:\work\qijia\dalgen\ojdbc14.jar" />
<context id="mysql" targetRuntime="MyBatis3">
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@qijia1.dev.weihui.com:1521:qijia"
userId="cert"
password="cert">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- generate Model -->
<javaModelGenerator targetPackage="com.netfinworks.site.core.dal.dataobject" targetProject=".\src\main\java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- generate xml -->
<sqlMapGenerator targetPackage="src/main/resources/META-INF/sqlmap" targetProject=".\">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<table schema="" tableName="tr_role_resource" domainObjectName="RoleResourceDO"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false"/>
</context>
</generatorConfiguration>