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等
相关文章推荐
- 【代码笔记】带索引的tableView
- 【代码笔记】带索引的tableView
- 通过VBS编写自动输入账号和密码、自动登录程序的脚本
- Eclipse 中包结构展开有两种方式
- javaEE之---------过滤敏感词(filter)
- java知识点之增强for循环
- C# I/O操作 笔记
- php采用session实现防止页面重复刷新
- php项目打包
- python ctype dll 例子
- PHP表单的验证--来自w3c
- PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
- 数据挖掘(二)——Knn算法的java实现
- php webservice应用
- Android Eclipse 导入 AS Gradle AAR 库手册
- 用php判断时间戳来输出刚刚,分钟前,小时前昨天和时间
- python闭包引用局部变量的方法
- 修改字符编码格式--【Eclipse】
- Python补充04 Python简史
- 具体分析contrex-A9的汇编代码__switch_to(进程切换)