mybatis生成代码插件:MyBatis代码生成器MyBatisGenerator
mybatis生成代码插件:MyBatis代码生成器MyBatisGenerator如果此属性为真,为表生成的对象将被放在包"com.mycompany.myschema"中。如果属性为false,生成的对象将被放置在“com.mycompany”模式。默认值为false。此属性用于选择MyBatis Generator是否将根据自检表的catalog和schema为对象生成不同的Java包。例如,假设在MYSCHMA这一schema中有一个表MYTABLE。还假设targetPackage属性设置为“com.mycompany”。其他属性:下表列出了默认Java model generators的属性,可以用<property>子元素指定:enableSubPackages
前言官网地址:http://mybatis.org/generator/
快速开始 | 操作步骤:
- 配置maven依赖
- 配置generatorConfig.xml文件
- 安装maven插件,运行生成代码
demo项目地址:https://gitee.com/shuashua-world/shuashua-blog/tree/master/demo/mybatis-simple-demo/mybatis-generator-demo
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的属性,可以用<property>子元素指定:
enableSubPackages |
此属性用于选择MyBatis Generator是否将根据自检表的catalog和schema为对象生成不同的Java包。 如果此属性为真,为表生成的对象将被放在包"com.mycompany.myschema"中。如果属性为false,生成的对象将被放置在“com.mycompany”模式。 |
trimStrings |
此属性用于选择MyBatis Generator是否添加代码以修剪从数据库返回的字符字段的空白。如果您的数据库将数据存储在CHAR字段而不是VARCHAR字段中,这将非常有用。当为true时,MyBatis Generator将插入代码来修剪字符字段。可以使用 <table>或<columoverride>元素中的trimStrings属性来覆盖。 |
↑tips:其他属性在此省略了,详情可查看官网说明。
<sqlMapGenerator>标签必备属性:(这两必备属性的含义与<javaModelGenerator>标签的两必备属性类似)
- targetPackage属性
- targetProject属性
必备属性:
- 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将被附加到生成器配置中指定的目标包。 - ........
<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>
运行示意: