mybatis代码生成+自定义注解+自定义注释实例

Mybatis代码生成器

Mybatis Generator是Mybatis提供的一个代码生成器,可以通过数据库中的表结构自动生成对应的Java、Mapper和XML文件。自动生成的代码基于Mybatis的最佳实践,可以大大减轻Java开发者的工作量,并且保证代码的规范性和正确性。

安装Mybatis Generator

Mybatis Generator是一个Java程序,可以通过Maven来进行安装。将以下内容加入到pom.xml文件中:

<build>
  <plugins>
    <plugin>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-maven-plugin</artifactId>
      <version>1.4.0</version>
      <dependencies>
        <dependency>
          <groupId>mysql</groupId>   <!-- 数据库驱动,根据实际情况修改 -->
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.45</version>
        </dependency>
      </dependencies>
    </plugin>
  </plugins>
</build>

配置Mybatis Generator

Mybatis Generator生成代码的依据是generatorConfig.xml配置文件和数据库中的表结构。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>
  <context id="context1">
    <jdbcConnection connectionURL="jdbc:mysql://127.0.0.1:3306/mybatis"
      driverClass="com.mysql.jdbc.Driver" password="root"
      userId="root" />
    <javaModelGenerator targetPackage="com.tianma.mybatis.model"
      targetProject="src/main/java">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
    <sqlMapGenerator targetPackage="com.tianma.mybatis.mapper"
      targetProject="src/main/java">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.tianma.mybatis.mapper"
      targetProject="src/main/java">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>
    <table schema="mybatis" tableName="user">
      <property name="useActualColumnNames" value="false" />
      <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()"
        identity="true" />
      <columnOverride column="password" property="pwd" />
    </table>
  </context>
</generatorConfiguration>

使用Mybatis Generator生成代码

在配置文件和数据库结构准备好之后,可以使用Mybatis Generator生成代码。在Maven的控制台中输入以下命令即可:

mvn mybatis-generator:generate

使用自定义注解来生成代码

我们可以通过给表结构添加注解的方式,让Mybatis Generator能够根据注解来生成对应的代码。以下是一个示例:

@TableName("user")
public class User {
  private Long id;
  @TableField("username")
  private String name;
  @TableField("password")
  private String pwd;
  // ...
}

通过添加注解@TableField和@TableName可以让Mybatis Generator根据注解来自动生成对应的XML、Mapper以及Java对象的属性以及对应的getter/setter方法。

使用自定义注释来生成代码

我们还可以通过添加自定义注释的方式来生成代码。以下是一个示例:

/**
 * 用户表
 * 
 * CREATE TABLE `user` (
 *   `id` bigint(20) NOT NULL AUTO_INCREMENT,
 *   `username` varchar(255) NOT NULL COMMENT '用户名',
 *   `password` varchar(255) NOT NULL COMMENT '密码',
 *   PRIMARY KEY (`id`)
 * ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
 */
public class User {
  private Long id;
  private String name;
  private String pwd;
  // ...
}

通过在Java代码中添加注释,我们可以让Mybatis Generator在生成对应的XML、Mapper和Java对象的时候,使用我们给定的注释来生成对应的注释说明。这样可以让生成的代码更加清晰明了。

示例一

下载MySQL Connector/J

下载地址:https://dev.mysql.com/downloads/connector/j/

添加依赖

将以下依赖添加到pom.xml中:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.44</version>
</dependency>

配置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>
    <context id="default">
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
          connectionURL="jdbc:mysql://localhost:3306/mybatis"
          userId="root" password="root">
        </jdbcConnection>
        <javaModelGenerator targetPackage="com.mybatis.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <javaClientGenerator targetPackage="com.mybatis.mapper" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <table tableName="t_order" domainObjectName="Order"></table>
    </context>
</generatorConfiguration>

运行生成代码

运行 mvn mybatis-generator:generate,代码会自动生成到对应的包目录下。

示例二

以下是 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>

    <!-- 全局配置 -->
    <context id="default">
        <commentGenerator>
            <property name="suppressAllComments" value="false"/>
            <property name="addRemarks" value="true" />
        </commentGenerator>

        <!-- 数据库连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test?useSSL=false" userId="root" password="root">
        </jdbcConnection>

        <!-- 代码生成器 -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <javaModelGenerator targetPackage="com.test.mybatis.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="false"/>
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <javaClientGenerator targetPackage="com.test.mybatis.mapper" type="XMLMAPPER" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!-- 表生成器 -->
        <table tableName="t_user">
            <property name="useActualColumnNames" value="true" />
        </table>

    </context>

</generatorConfiguration>

其中,我们使用了commentGenerator来生成注释说明,jdbcConnection连接了本地环境下的test数据库,javaModelGenerator用于生成对应的Java对象,sqlMapGenerator用于生成对应的Mapper XML文件,而javaClientGenerator用于生成对应的Mapper接口。在table节点中,我们指定了生成对应的表结构,其中useActualColumnNames设置为true,表示使用表中的实际列名作为Java类的属性名,而不是按照Mybatis的默认规则进行命名。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis代码生成+自定义注解+自定义注释实例 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Java实现数组翻转的实现代码

    下面我就来详细讲解“Java实现数组翻转的实现代码”的完整攻略,步骤如下: 步骤一:确定翻转范围 要实现数组翻转,首先需要确定翻转的范围,包括需要翻转的起始和结束位置。 这里我们假设要翻转的数组为arr,数组长度为n。如果要将整个数组翻转,起始位置设为0,结束位置为n-1。如果只需要翻转数组的一部分,可以根据具体需求指定起始和结束位置。 步骤二:交换元素位置…

    Java 2023年5月26日
    00
  • 带你入门Java的类与对象

    接下来我将向您介绍如何入门Java的类与对象。 1. 什么是类与对象 在Java中,我们可以使用类来定义一个对象。类是指一种自定义数据类型,可以包含数据和行为。对象是类的实例,是具体存在的,可以使用这个对象来调用类中定义的方法。 2. 定义类与对象 先来看一个简单的示例,定义一个类Person,包含属性name和age,构造方法和一个方法sayHello。 …

    Java 2023年5月19日
    00
  • JavaScript面向对象程序设计中对象的定义和继承详解

    JavaScript面向对象程序设计中对象的定义和继承详解 对象的定义 在JavaScript中,对象是属性的集合,每个属性都由一个键和一个值组成。键是字符串类型的,值可以是任意类型,包括对象和函数。JavaScript中的对象可以通过以下几种方式进行定义: 字面量方式 字面量方式是最常用的定义对象的方式,在这种方式下,可以直接定义一个对象,并给它添加属性和…

    Java 2023年5月26日
    00
  • springboot项目完整后端请求Controller层优雅处理

    那么我们先从介绍Spring Boot项目完整后端请求Controller层处理的一般流程开始: 了解请求方式:HTTP协议定义了很多不同的请求方式,常规的包括GET、POST、PUT、DELETE等,我们需要根据具体的业务场景选择合适的请求方式。 定义API接口:在Controller层中,我们需要定义一组或多组API接口,这些接口对应于前端的具体请求,需…

    Java 2023年5月19日
    00
  • Maven deploy配置方法详解

    Maven deploy配置方法详解 在Maven项目中,使用deploy命令可以将项目打包并发布到Maven仓库中。下面详细介绍Maven deploy的配置方法。 1. 配置POM文件 在Maven项目的pom.xml文件中,需要配置Maven的distributionManagement节点。该节点的repository子节点配置发布到的Maven仓库…

    Java 2023年5月19日
    00
  • window7下Tomcat7.0安装配置方法

    Window7下Tomcat7.0安装配置方法 本文介绍如何在Windows 7下安装配置Tomcat 7.0。 1. 下载Tomcat 7.0 首先,从Tomcat官网下载地址(https://tomcat.apache.org/download-70.cgi)下载Tomcat 7.0二进制发行版。 2. 安装Tomcat 7.0 安装Tomcat 7.0…

    Java 2023年5月19日
    00
  • Spring 框架中注入或替换方法实现

    Sure! Spring 有很多注入或者替换方法的实现方式,其中比较常见的有以下几种方式: 基于 XML 基于 Java Config 基于注解 下面将逐步介绍这几种方式的具体实现方法和示例。 1. 基于 XML 基于 XML 的方式是 Spring 最早期的实现方式,也是应用最广泛的一种方式。在 XML 中,我们可以通过 <bean> 标签配置…

    Java 2023年5月19日
    00
  • maven 解包依赖项中的文件的解决方法

    通过 Maven 进行项目构建时,通常会依赖许多第三方库和组件。这些依赖项可以通过 Maven 的依赖管理功能来添加到项目中,并在构建时自动下载和配置。但是,有时候可能需要将某些依赖项中的文件提取出来,例如:将依赖的jar包中的资源文件提取到指定的文件夹中。 下面是一种将 Maven 依赖项中的文件解压缩的方法: 步骤: 找到项目的pom.xml文件,添加m…

    Java 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部