快捷搜索:  汽车  科技

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/

快速开始 | 操作步骤:

  1. 配置maven依赖
  2. 配置generatorConfig.xml文件
  3. 安装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包。
例如,假设在MYSCHMA这一schema中有一个表MYTABLE。还假设targetPackage属性设置为“com.mycompany”。

如果此属性为真,为表生成的对象将被放在包"com.mycompany.myschema"中。如果属性为false,生成的对象将被放置在“com.mycompany”模式。
默认值为false。

trimStrings

此属性用于选择MyBatis Generator是否添加代码以修剪从数据库返回的字符字段的空白。如果您的数据库将数据存储在CHAR字段而不是VARCHAR字段中,这将非常有用。当为true时,MyBatis Generator将插入代码来修剪字符字段。可以使用 <table>或<columoverride>元素中的trimStrings属性来覆盖。
默认值为false。
如果目标运行时是“MyBatis3Kotlin”,则忽略此属性

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

运行示意:

mybatis生成代码插件:MyBatis代码生成器MyBatisGenerator(1)

猜您喜欢: