您的位置:首页 > 编程语言

Mybatis自动代码生成插件MybatisGenerator使用

2015-12-24 09:13 666 查看

Mybatis自动代码生成插件MybatisGenerator使用

MybatisGenerator介绍

MyBatis Generator (MBG) 是一个Mybatis的代码生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各个版本的代码,和iBATIS 2.2.0版本以后的代码。 他可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象。 这样和数据库表进行交互时不需要创建对象和配置文件。 MBG的解决了对数据库操作有最大影响的一些简单的CRUD(插入,查询,更新,删除)操作。 您仍然需要对联合查询和存储过程手写SQL和对象。

MyBatis Generator 会生成:

匹配表结构的Java POJO,可能包括:

一个和表主键匹配的类(如果存在主键[注:只有联合主键会有])

一个包含了非主键字段的类(BLOB字段除外[注:单字段做主键时这里会包含])

一个包含了BLOB字段的类 (如果表包含了BLOB字段)

一个允许动态查询、更新和删除的类[注:指的是Example查询]

这些类之间会有适当的继承关系。 请注意可以配置生成器来生成不同类型的 POJO 的层次结构。 例如,如果您愿意您可能会选择针对每个表生成一个单独的实体对象。

MyBatis/iBATIS 兼容 SQL 映射 XML 文件。MBG 在配置中为每个表简单的 CRUD 操作生成 SQL。 生成的 SQL 语句包括:

insert (插入)

update by primary key (根据主键更新记录)

update by example (根据条件更新记录)

delete by primary key (根据主键删除记录)

delete by example (根据条件删除记录)

select by primary key (根据主键查询记录)

select by example (根据条件查询记录集)

count by example (根据条件查询记录总数)

根据表的结构,生成的这些语句会有不同的变化(例如,如果表中没有主键,那么 MBG 将不会生成update by primary key方法)。

Java客户端类会适当的使用上面的对象,生成Java客户端类时可选的。 MBG会为MyBatis 3.x生成如下客户端类:

一个可以和MyBatis 3.x一起使用的mapper接口类

MBG会为iBATIS 2.x生成如下的客户端类:

符合 Spring 框架的DAO类。

只使用iBATIS SQL映射API的DAO。 这种DAO可以通过下面两种方式生成:提供SqlMapClient通过构造方法或者setter注入。

符合iBATIS DAO 框架的DAO (iBATIS可选的一部分,这一框架已经过时,我们建议您使用Spring框架替代)。

操作步骤

使用环境:java、maven等


第一步:在src/main/resources下新建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>

<!-- JDBC -->
<classPathEntry
location="/Users/xuhaifei/.m2/repository/mysql/mysql-connector-java/5.1.26/mysql-connector-java-5.1.26.jar" />
<context id="CORE" targetRuntime="MyBatis3">
<!-- comment -->
<commentGenerator>
<property name="suppressAllComments" value="true" />
<property name="suppressDate" value="true" />
</commentGenerator>

<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8"
userId="root" password="password">
</jdbcConnection>

<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>

<!-- PO -->
<javaModelGenerator targetPackage="test.po"
targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>

<!-- xml -->
<sqlMapGenerator targetPackage="test.dao"
targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>

<!-- DAO -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="test.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>

<!-- table -->
<!-- 这需要注意,将你需要自动生成的表都列在这里 -->
<table tableName="test" schema="public"
domainObjectName="Test" />

</context>

</generatorConfiguration>


第二步:在pom.xml中添加插件需要的依赖配置,具体配置如下:

<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>


第三步:在项目的目录下执行命令

mybatis-generator:generate


其他备注:

1.generatorConfig.xml中配置解释

<table tableName="tableName" schema="public"
domainObjectName="ClassName" />


该配置中

table:指代数据库中数据库的表名称

domainObjectName:指代生成po类名称。其余生成的类名为ClassName、ClassNameMapper、ClassNameMapper.xml等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: