我们经常用到mybatis来进行程序代码级别对数据库的操作,然而需要编写大量的表实例类与映射文件,现在使用工具mybatis-generator就可实现上述文件的自动生成,下面简要介绍一下其使用方法。

1.创建工程

  为了下载jar包比较方便,本人创建一个名为mybatis的maven工程来应用mybatis-generator.

  

java mean 使用mybatis 自动生成dao mybatis自动生成表_xml

2.修改pom.xml文件,下载依赖的jar包

java mean 使用mybatis 自动生成dao mybatis自动生成表_java_02

java mean 使用mybatis 自动生成dao mybatis自动生成表_xml_03

1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 2   <modelVersion>4.0.0</modelVersion>
 3   <groupId>com.liuwei</groupId>
 4   <artifactId>mybatis</artifactId>
 5   <version>0.0.1-SNAPSHOT</version>
 6 <dependencies>
 7      <!-- 添加mybatis的核心包 -->
 8      <dependency>
 9           <groupId>org.mybatis</groupId>
10           <artifactId>mybatis</artifactId>
11           <version>3.2.8</version>
12      </dependency>
13      <!-- 添加mysql驱动包 -->
14      <dependency>
15           <groupId>mysql</groupId>
16           <artifactId>mysql-connector-java</artifactId>
17           <version>5.1.34</version>
18      </dependency>
19      <!-- 添加junit单元测试包 -->
20         <dependency>
21             <groupId>junit</groupId>
22             <artifactId>junit</artifactId>
23             <version>4.12</version>
24             <scope>test</scope>
25         </dependency>
26         <!-- mybatis配置文件生成工具 -->
27         <dependency>
28             <groupId>org.mybatis.generator</groupId>
29             <artifactId>mybatis-generator-core</artifactId>
30             <version>1.3.2</version>
31         </dependency>
32 </dependencies>
33 </project>

pom.xml

3.编写generator.xml配置文件,放在项目根目录下

java mean 使用mybatis 自动生成dao mybatis自动生成表_java_02

java mean 使用mybatis 自动生成dao mybatis自动生成表_xml_03

1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
 3 <generatorConfiguration>
 4     <!-- 数据库驱动包位置 -->
 5     <classPathEntry location="C:\Users\dm1-10473\.m2\repository\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar" /> 
 6     <context id="DB2Tables" targetRuntime="MyBatis3">
 7         <commentGenerator>
 8             <property name="suppressAllComments" value="true" />
 9         </commentGenerator>
10         <!-- 数据库链接URL、用户名、密码 -->
11          <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/spring_mybatis" userId="root" password="123"> 
12         </jdbcConnection>
13         <javaTypeResolver>
14             <property name="forceBigDecimals" value="false" />
15         </javaTypeResolver>
16         <!-- 生成实体类的包名和位置,这里配置将生成的实体类放在me.springmybatis.domain这个包下 -->
17         <javaModelGenerator targetPackage="me.mybatis.domain" targetProject="C:\Users\dm1-10473\workspace\mybatis\src\main\java">
18             <property name="enableSubPackages" value="true" />
19             <property name="trimStrings" value="true" />
20         </javaModelGenerator>
21         <!-- 生成的SQL映射文件包名和位置,这里配置将生成的SQL映射文件放在me.springmybatis.mapping这个包下 -->
22         <sqlMapGenerator targetPackage="me.mybatis.mapping" targetProject="C:\Users\dm1-10473\workspace\mybatis\src\main\java">
23             <property name="enableSubPackages" value="true" />
24         </sqlMapGenerator>
25         <!-- 生成DAO的包名和位置,这里配置将生成的dao类放在me.springmybatis.dao这个包下 -->
26         <javaClientGenerator type="XMLMAPPER" targetPackage="me.mybatis.dao" targetProject="C:\Users\dm1-10473\workspace\mybatis\src\main\java">
27             <property name="enableSubPackages" value="true" />
28         </javaClientGenerator>
29         <!-- 要生成那些表(更改tableName和domainObjectName就可以) -->
30         <table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
31     </context>
32 </generatorConfiguration>

generator.xml

4.创建数据库和表

java mean 使用mybatis 自动生成dao mybatis自动生成表_java_02

java mean 使用mybatis 自动生成dao mybatis自动生成表_xml_03

1 Create DATABASE spring_mybatis;
 2 USE spring_mybatis;
 3 
 4 DROP TABLE IF EXISTS t_user;
 5 CREATE TABLE t_user (
 6   user_id char(32) NOT NULL,
 7   user_name varchar(30) DEFAULT NULL,
 8   user_birthday date DEFAULT NULL,
 9   user_salary double DEFAULT NULL,
10   PRIMARY KEY (user_id)
11 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

SQL

5.执行生成命令

java -jar C:\Users\dm1-10473\.m2\repository\org\mybatis\generator\mybatis-generator-core\1.3.2\mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite

具体可以根据jar包所在路径修改命令 ,本人写了一个bat脚本来执行

6.执行完毕后自动生成了相关文件

java mean 使用mybatis 自动生成dao mybatis自动生成表_maven_08

这样就解决了大量的重复性工作。

7.在Maven组织工程中应用mybatis-generator方法

 Maven组织的工程中应用mybatis-generator自动生成数据库表对应的实体类与映射文件,方式与上述类似,仅需要引入另外一个插件mybatis-generator-maven-plugin,使得maven能够对生成过程加以控制。

 首先,在pom.xml文件中添加上述maven插件

  

<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>

第二步,将我们的生成配置文件generator.xml放置于工程资源文件路径之下,/src/main/resources(默认目录),注意将文件名修改为generatorConfig.xml(生成插件默认识别的配置文件名称)。

第三步,工程->maven build -> 弹出对话框 ->goals中填写mybatis-generator:generate -> apply -> run 就可生成我们所需的文件。