使用IntelliJ IDEA开发SpringMVC网站(六)利用mybatis-generator自动生成代码

在上一篇《使用IntelliJ IDEA开发SpringMVC网站(五)集成事务管理》文章中我们集成了事务管理,本文讲解一下利用mybatis-generator自动生成代码。

MyBatis Generator介绍

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

官方文档:http://www.mybatis.org/generator/

中文翻译:http://generator.sturgeon.mopaas.com/

MyBatis Generator(以下简称为MBG)有三种用法:命令行、eclipse插件、Maven插件。Maven插件比较方便,可以在eclipse/intellij idea等ide上通用。

MyBatis Generator With Maven http://mybatis.github.io/generator/running/runningWithMaven.html

STEP 1. 在pom文件中,添加MGB插件,IDE会自动帮我们下载插件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<build>
<finalName>springmvcdemo</finalName>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>

STEP 2. 在maven项目下的src/main/resources 目录下建立名为mybatis-generator的目录,在该目录下建立 generatorConfig.xml的配置文件,作为mybatis-generator-maven-plugin 插件的执行目标(默认是加载src/main/resources下面的generatorConfig.xml),模板如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?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>
<!--数据库驱动jar -->
<classPathEntry location="E:\mysql-connector-java-5.1.7-bin.jar" />

<context id="MysqlContext" targetRuntime="MyBatis3">
<!--去除注释 -->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>

<!--数据库连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis"
userId="root"
password="123456">
</jdbcConnection>
<!--默认false
Java type resolver will always use java.math.BigDecimal if the database column is of type DECIMAL or NUMERIC.
-->
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>

<!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建 使用Maven生成在target目录下,会自动创建) -->
<javaModelGenerator targetPackage="com.springmvcdemo.model" targetProject="MAVEN">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--生成SQLMAP文件 -->
<sqlMapGenerator targetPackage="com.springmvcdemo.mapper" targetProject="MAVEN">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!--生成Dao文件 可以配置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.springmvcdemo.mapper" targetProject="MAVEN">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>

<!--对应数据库表 mysql可以加入主键自增 字段命名 忽略某字段等-->
<table tableName="t_user" domainObjectName="User" >
</table>

</context>
</generatorConfiguration>

这里IDEA报了个错,加载不了dtd文件,

image

从CSDN上 http://download.csdn.net/detail/zhangyaoyaoai/9267501 下载该文件,放在generatorConfig.xml的同一个目录下面。

targetRuntime="MyBatis3"
因为我们使用的是MyBatis,所以targetRunTime选择的是MyBatis3,如果使用的是IBatis的话,需要这样配置:

1
2
<context id="MysqlContext" targetRuntime="Ibatis2Java5">
<javaClientGenerator type="SPRING"

关于generatorConfig.xml配置文件的详细解释请参考:http://blog.csdn.net/isea533/article/details/42102297

STEP 3. 测试运行

点击Maven Project——项目——Plugins——mybatis generator——Run Maven build

image

BUILD SUCCESS

image

image

STEP4. 根据自己项目的配置,把生成的代码拷贝到自己的项目中去。

至此,利用mybatis-generator自动生成代码功能完成。接下来会继续完善框架。
(代码已提交到GitHub:https://github.com/jasonli822/MySpringMvcFrame)