有时候,可能会用到mybatis的自动生成功能,通过自动生成功能可以配置生成哪些表的javabean,javabeanExample.java,javabeanMapper.java,以及javabeanMapper.xml,这跟hibernate是个相反的过程,hibernate是通过对象生成表,而这里mybatis是通过表生成对象。根据mybatis生成的这些对象,你基本可以完成对单个对象的所有操作了,这里不说它生成的各个文件怎么使用,只说怎么生成。我使用的mybatis是3.4.1。
<?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="D:\programs\mvnrepo\repo\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar" />
<context id="mybatisGenerator">
<jdbcConnection
connectionURL="jdbc:mysql://localhost:3306/mybatis"
driverClass="com.mysql.jdbc.Driver"
password="root"
userId="root" />
<!-- 配置生成javabean -->
<javaModelGenerator
targetPackage="cn.zhao.beans.auto"
targetProject="test_za/src/main/java" />
<!-- 配置生成xml映射文件 -->
<sqlMapGenerator
targetPackage="mybatis_auto"
targetProject="test_za/src/main/resources" />
<!-- 配置生成dao -->
<javaClientGenerator
targetPackage="cn.zhao.dao.auto"
targetProject="test_za/src/main/java"
type="XMLMAPPER" />
<!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->
<table tableName="user_info" domainObjectName="UserInfo" >
</table>
</context>
</generatorConfiguration>
上面这是配置文件,有几个注意的地方:
1.classPathEntry用于指定通过jdbc连接mysql的jar包所在的位置,根据自己的路径修改
2.你可以选择生成javabean、生成mapper.xml文件、生成相当于dao层的mapper.java中的一种或几种,这个看你自己的需求了,也就是说javaModelGenerator、sqlMapGenerator、javaClientGenerator标签你需要哪几个就写哪几个。
3.table标签用于配置要被用于生成的表,domainObjectName如果不写的话mybatis会根据内置规则来命名生成的javabean以及其他文件。比如如果表名为test_table_name,那么按照mybatis内置的默认规则生成后javabean的名字就是TestTableName.java,其他文件的生成都是依据javabean的。
4.根据targetProject指定的路径,我这个文件应该放在test_za的同级目录下,目录结构如下:
如果你通过targetProject指定的路径不一样,你放置这两个文件的位置也会随着发生变化,也就是说targetProject的值并不是一成不变的固定写法哦。
5.通过targetPackage属性指定存放java类的包名称或者存放mapper.xml的文件夹的名称
6.mybatis-generator-core-1.3.5.jar是mybatis专门用来自动生成的插件jar包,可以去网上自行下载
7.万事俱备之后,该怎么去生成呢?用下面的命令就行了,当然了现在是在generatorConfig.xml文件所在目录下执行的,如果你不在当前路径下执行的话,要注意路径的变化:
java -jar mybatis-generator-core-1.3.5.jar -configfile generatorConfig.xml -overwrite
-overwrite表示如果文件存在,就覆盖。执行结果: