前言
快速开始 | 操作步骤:
- 配置maven依赖
- 配置generatorConfig.xml文件
- 安装maven插件,运行生成代码
maven依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<mybatis.version>3.2.6</mybatis.version>
<mybatis.generator.version>1.3.2</mybatis.generator.version>
<mysql.connector.version>5.1.6</mysql.connector.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>${mybatis.generator.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>
</dependencies>
generatorConfig.xml配置
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>
<!-- 引入配置文件 -->
<properties resource="datasource.properties"/>
<!-- targetRuntime属性用于为生成的代码指定运行时目标。具体值可查看官网说明-->
<context id="mybatisGeneratorByShuaShua" targetRuntime="MyBatis3">
<!-- 数据库连接信息 -->
<jdbcConnection driverClass="${jdbc.driverClassName}"
connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/>
<!-- 生成Model/pojo对象路径配置 -->
<javaModelGenerator targetPackage="world.shuashua.pojo"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true"/>
<!-- 需要掂量-->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成sqlXML文件路径配置 -->
<sqlMapGenerator targetPackage="mybatis.mapper"
targetProject=".\src\main\resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO/Mapper的类文件路径配置 -->
<javaClientGenerator targetPackage="world.shuashua.mapper"
targetProject=".\src\main\java" type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--要生成哪些表 -->
<table tableName="student" domainObjectName="Student"/>
</context>
</generatorConfiguration>
数据源配置(datasource.properties文件)
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&serverTimezone=UTC
jdbc.username=root
jdbc.password=123456
部分标签说明
<javaModelGenerator>
标签:
必备属性:
- targetPackage属性:这是放置生成的类的包名。在默认生成器中,“enableSubPackages”属性控制如何计算实际的包。如果为true,则计算的包将是targetPackage加上表的catalog和schema(如果存在的话)的子包。如果为false(默认值),则计算的包将完全是targetPackage属性中指定的包。MyBatis Generator将为生成的包创建所需的文件夹。
- targetProject属性:这用于为生成的对象指定目标项目。当在Eclipse环境中运行时,这将指定将保存对象的项目和源文件夹。在其他环境中,该值应该是本地文件系统上的一个现有目录。如果这个目录不存在,MyBatis Generator将不会创建它。
其他属性:
下表列出了默认Java model generators的属性,可以用子元素指定:
↑tips:其他属性在此省略了,详情可查看官网说明。
<sqlMapGenerator>
标签
必备属性:(这两必备属性的含义与<javaModelGenerator>
标签的两必备属性类似)
- targetPackage属性
- targetProject属性
<javaClientGenerator>
标签
必备属性:
- targetPackage属性
- targetProject属性
- type属性:此属性用于选择一个预定义的Java客户端生成器,或指定用户提供的Java客户端生成器。任何用户提供的生成器都必须扩展类org.mybatis.generator.codegen.AbstractJavaClientGenerator类,并且必须具有公共默认构造函数。 如果
<context>
targetRuntime为MyBatis3,则可以使用以下预定义值: - ANNOTATEDMAPPER:生成的对象将是MyBatis 3.x mapper结构的Java接口。接口将基于注解和MyBatis 3.x SqlProviders。不会生成任何XML映射器文件。ANNOTATEDMAPPER要求MyBatis版本3.0.4或更高。
- MIXEDMAPPER:生成的对象将是MyBatis 3.x mapper结构的Java接口。这些接口将基于注解和XML的混合。在简单注释可以工作的地方使用注释。该客户端不会生成Sql Provider,因此所有复杂的动态Sql都将以XML生成。MIXEDMAPPER要求MyBatis版本3.0.4或更高。
- XMLMAPPER:生成的对象将是MyBatis 3.x mapper结构的Java接口。这些接口将依赖于生成的XML映射器文件。
…
<table>
标签
必备属性:
- tableName属性:数据库表的名称(不包括schema或catalog)。如果需要,指定的值可以包含SQL通配符。
- 可选配置项:
- domainObjectName:生成的对象名称将从中生成的基名称。如果没有指定,MBG将根据表名自动生成一个名称。名称(可以在这里指定,也可以自动生成)将用于计算生成的域类名和DAO类名。 您可以在域对象名称中指定包片段。例如,如果指定foo.Bar,那么域对象将是Bar,包foo将被附加到生成器配置中指定的目标包。
- …
安装maven插件,运行插件
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.1</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
运行示意: