Mybatis属于半自动ORM框架,在使用过程中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。
MyBatis Generator有三种常用方法自动生成代码:命令行、Eclipse插件和Maven插件。下面我将一一介绍这三种方法。
一 使用命令行生成
1.准备相关JAR包
需要准备的JAR包:mysql-connector-java-5.1.45-bin.jar和mybatis-generator-core-1.3.6.jar
(http://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core/1.3.6)。
2.创建文件目录
在某磁盘根目录下新建一个文件目录。如,D:\generator。并将mysql-connector-java-5.1.45-bin.jar和mybatis-generator-core-1.3.6.jar文件复制到generator目录下。另外,在generator目录下,创建src子目录存放生成的相关代码文件。
3.创建配置文件
在第二步创建的文件目录(D:\generator)下创建配置文件,如D:\generator\generator.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>
<!--数据库驱动-->
<classPathEntry location="mysql-connector-java-5.1.22-bin.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/springtest?characterEncoding=utf8" userId="root" password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="com.po" targetProject="src">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="com.mapping" targetProject="src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.dao" targetProject="src">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成对应表及类名-->
<table tableName="user" domainObjectName="Messgae" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
需要修改文件配置的地方我都已经把注释标注出来了,这里的相关路径(如数据库驱动包,生成对应的相关文件位置可以自定义)不能带有中文。
4.使用命令生成代码
打开命令提示符,进入D:\generator,输入命令:java -jar mybatis-generator-core-1.3.6.jar -configfile generator.xml –overwrite,具体命令随jar版本改变,如下所示:
java -jar mybatis-generator-core-1.3.6.jar -configfile generator.xml –overwrite
小技巧:Windows系统下,在该目录按住Shift键,右键鼠标选择"在此处打开命令窗口",复制粘贴生成语句的文件代码即可。
成功生成所需文件:
二 在Eclipse中使用Mybatis-Generator
我们这里举一个实例来看看。
1、新建一个项目mybatis-generator:
导入所需jar包,同上一小节:
2、下载Mybatis Generator 1.3.5插件:
Help --> Eclipser Marketplace中查找:Mybatis Generator 安装
最后可能有同意服务条款之类的,选择Accept然后Finish即可。
3、新建Mybatis Generator Configuration File
New--other--输入Mybatis查找如下:
选择好后,点击Finish即生成generatorConfig.xml
4、配置generatorConfig.xml
同上一小节讲述的用命令行生成,注意,一定要提前新建好项目和包,且在文件中指明导出到哪个项目:
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.hao.pojo"
targetProject="mybatis-generator/src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.hao.mapper"
targetProject="mybatis-generator/src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.hao.dao" targetProject="mybatis-generator/src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
5、用Eclipse插件开始生成
generatorConfig.xml --> 右键 --> Run As :
导出成功:
用Maven插件生成代码,和Eclipse生成大同小异,等后面出了Maven教程后补上此章!
本教程所有源码地址:
https://github.com/jiahaoit/tool