mybatis的MBG自动生成代码详细讲解
首先建立一个maven项目
1.配置pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.et</groupId>
<artifactId>MBG</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
</dependencies>
<!-- 配置代码生成插件 -->
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<!--告诉插件,配置文件所在的位置-->
<configuration>
<configurationFile>src/main/resources/MBG.xml</configurationFile>
</configuration>
</plugin>
</plugins>
</build>
</project>
2.运行MBG主要依靠一份配置文件,这也是学习MBG的关键。官方详细的配置说明:http://www.mybatis.org/generator/configreference/xmlconfig.html
添加MBG配置文件
<?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">
<!-- 生成代码 需要一些步骤
1 连接数据库 (驱动包 四要素)
-->
<generatorConfiguration>
<!-- 配置连接驱动包 -->
<classPathEntry location="d:\mysql-connector-java-5.1.26.jar"/>
<!-- 设置生成代码的规则 targetRuntime开发环境使用Mybatis的版本 -->
<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 生成分页 -->
<plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"></plugin>
<!-- 配置连接mysql四要素 -->
<jdbcConnection
connectionURL="jdbc:mysql://localhost:3306/test"
driverClass="com.mysql.jdbc.Driver"
userId="root"
password="123456">
</jdbcConnection>
<!-- java类型处理器
用于处理DB中的类型到Java中的类型,默认使用JavaTypeResolverDefaultImpl;
注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和 NUMERIC数据类型;
-->
<javaTypeResolver >
<!--
true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型
false:默认,
scale>0;length>18:使用BigDecimal;
scale=0;length[10,18]:使用Long;
scale=0;length[5,9]:使用Integer;
scale=0;length<5:使用Short;
-->
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 实体类 bean 带有get和set方法的bean
targetProject="src/main/java 生成目标位置(将实体类生成在src/main/java目录下)
-->
<javaModelGenerator targetPackage="cn.et.entity" targetProject="src/main/java">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true" />
<!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- sql语句相关的xml或者注解的生成包路径
targetPackage="cn.et.resource" 将注解生成在cn.et.resource包下
-->
<sqlMapGenerator targetPackage="cn.et.resource" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成的接口所在位置
type="XMLMAPPER" 生成xml接口映射
type="ANNOTATEDMAPPER" 生成注解
-->
<javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="cn.et.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 告诉mbg 需要生成代码的表
schema="DB2ADMIN" 是oracle里的
tableName="ALLTYPES" 表名
-->
<table tableName="student" ></table>
<!--<table tableName="grade" ></table>-->
</context>
</generatorConfiguration>
其中几个关键节点:
1.jdbcConnection:每个context必须有一个jdbcConnection节点,用来指定数据库连接所需的数据库连接属性。
2. javaModelGenerator:用于定义生成 model类的设置。
3.sqlMapGenerator: 用于定义SQL映射生成器的属性
4. javaClientGenerator: 用于定义 Java 客户端代码生成器的属性。 Java客户端生成器生成Java接口和类,它可以简单地使用生成的Java模型和XML映射文件。
5.table: 用来从数据库中选择一个表。
3.运行,我用的IDE,可以在Maven 面板双击mybatis-generator:gennerate,就会自动生成mybatis相关文件。
执行完成后效果如下: