【MyBatis】代码生成器MyBatis Generator

本文介绍了MyBatis Generator的使用,包括maven依赖、generatorConfig.xml配置,详细解析了targetPackage、targetProject等关键属性,并展示了如何安装maven插件并运行生成代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

官网地址:http://mybatis.org/generator/

快速开始 | 操作步骤:

  1. 配置maven依赖
  2. 配置generatorConfig.xml文件
  3. 安装maven插件,运行生成代码

demo项目地址:gitee/shuashua/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的属性,可以用子元素指定:

在这里插入图片描述

↑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也能方向生成代码,能方向生成实体类(po)、mapper接口和Mapper接口映射文件,能减少我们代码的工作量。详细步骤如下 1、下载mybatis生成架包工具MyBatis_Generator_1.3.1.zip,解压架包把features、plugins文件夹下的架包分别拷贝到eclipse安装目录下的features、plugins文件夹。重启eclipse就行。 解压后图片如下: Eclipse路径如图: 拷贝替换如图: 2、创建generatorConfig.xml文件,安装好mybatis 就能创建generatorConfig.xml 3、配置generatorConfig.xml配置文件,详细如下 [html] view plain copy <?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> <!-- <classPathEntry location="D:\\rep\\mysql\\mysql-connector-java\\5.1.19\\mysql-connector-java-5.1.19.jar" /> --> <classPathEntry location="D:\\repo\\com\\oracle\\ojdbc14\\10.2.0.1.0\\ojdbc14-10.2.0.1.0.jar" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressAllComments" value="true" /> <property name="suppressDate" value="true" /> </commentGenerator> <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:orcl4" userId="xxx" password="xxxx" /> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> </javaTypeResolver> <javaModelGenerator targetPackage="com.pcmall.domain.sale.order" targetProject="pos-service/src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="mybatis.mapper.sale.order" targetProject="pos-service/src/main/resources"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <javaClientGenerator targetPackage="com.pcmall.dao.sale.order" targetProject="pos-service/src/main/java" type="XMLMAPPER"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <table tableName="hs_zxzflx" enableSelectByExample="false" enableDeleteByExample="false" enableCountByExample="false" selectByExampleQueryId="true" enableUpdateByExample="false"> <!-- <generatedKey column="ID" sqlStatement="oracle" identity="true" /> --> </table> </context> </generatorConfiguration> 4、右击generatorConfig.xml 点击Generate MyBatis/iBATIS Artifacts 生成对应接口、接口映射文件、实体类 5、查看结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值