mybatis generator 使用方法教程(生成带注释的实体类)

MyBatis Generator使用方法教程

MyBatis Generator是一个可以将数据库表结构直接转换为Java实体类的工具,使用它可以省去手动编写Java实体类的过程,提高开发效率。本文将详细讲解MyBatis Generator的使用方法,并且会演示如何生成带注释的实体类。

准备工作

在开始使用MyBatis Generator之前,需要完成以下准备工作:

  1. 安装Java和Maven
  2. 创建一个Java项目
  3. 添加MyBatis和MyBatis Generator依赖

    <dependencies>
    <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
    </dependency>
    <dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.4.0</version>
    </dependency>
    </dependencies>

配置文件

MyBatis Generator需要一个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>
    <classPathEntry location="./mysql-connector-java-8.0.23.jar" />

    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!-- 数据库连接信息 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mybatis_demo"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        <!-- 实体类生成的包名 -->
        <javaModelGenerator targetPackage="com.example.entity"
                            targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- Mapper类生成的包名 -->
        <sqlMapGenerator targetPackage="com.example.mapper"
                         targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!-- DAO生成的包名 -->
        <javaClientGenerator targetPackage="com.example.mapper"
                             targetProject="src/main/java"
                             type="XMLMAPPER">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 表名和实体类的映射信息 -->
        <table schema="mybatis_demo" tableName="user">
            <generatedKey column="id" sqlStatement="JDBC"/>
        </table>

    </context>
</generatorConfiguration>

以上配置文件指定了以下内容:

  1. 数据库连接信息
  2. 实体类、Mapper类、DAO生成的包名
  3. 表名和实体类的映射信息

在此基础上,我们可以对实体类进行注释。

生成带注释的实体类

在配置文件中添加以下内容:

 <!-- 配置实体类的属性注释 -->
 <commentGenerator>
     <property name="suppressAllComments" value="false"/>
     <property name="addRemarkComments" value="true"/>
     <property name="dateFormat" value="yyyy-MM-dd"/>
 </commentGenerator>

suppressAllComments表示是否禁止所有注释,addRemarkComments表示是否对实体类的属性添加注释。其中,dateFormat表示注释中的日期格式。

完成配置文件后,启动Maven项目并执行以下命令就可以生成实体类了:

$ mvn mybatis-generator:generate

执行完毕后,在对应的包路径下就可以找到生成的带注释的实体类了。

示例

示例中假设MySQL数据库创建了以下表和数据:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `gender` varchar(4) DEFAULT NULL COMMENT '性别',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;

INSERT INTO `user` (`id`, `name`, `age`, `gender`)
VALUES
    (1, 'Alice', 20, '女'),
    (2, 'Bob', 23, '男');

配置文件

创建并编辑mybatis-generator-config.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>
    <classPathEntry location="./mysql-connector-java-8.0.23.jar" />

    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!-- 数据库连接信息 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <!-- 实体类生成的包名 -->
        <javaModelGenerator targetPackage="com.example.entity"
                            targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- Mapper类生成的包名 -->
        <sqlMapGenerator targetPackage="com.example.mapper"
                         targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!-- DAO生成的包名 -->
        <javaClientGenerator targetPackage="com.example.mapper"
                             targetProject="src/main/java"
                             type="XMLMAPPER">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 表名和实体类的映射信息 -->
        <table schema="test" tableName="user">
            <generatedKey column="id" sqlStatement="JDBC"/>
        </table>

        <!-- 配置实体类的属性注释 -->
         <commentGenerator>
             <property name="suppressAllComments" value="false"/>
             <property name="addRemarkComments" value="true"/>
             <property name="dateFormat" value="yyyy-MM-dd"/>
         </commentGenerator>

    </context>
</generatorConfiguration>

其中,addRemarkComments的值指定为true,表示要为实体类的属性添加注释。

生成实体类

在Maven项目中执行以下命令即可生成带注释的实体类:

$ mvn mybatis-generator:generate

生成的实体类代码如下:

package com.example.entity;

import java.util.Date;

/**
 * Table: user
 */
public class User {
    /**
     * 主键
     * 
     * Column: id
     */
    private Integer id;

    /**
     * 姓名
     * 
     * Column: name
     */
    private String name;

    /**
     * 年龄
     * 
     * Column: age
     */
    private Integer age;

    /**
     * 性别
     * 
     * Column: gender
     */
    private String gender;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender == null ? null : gender.trim();
    }
}

生成Mapper类和DAO接口

在Maven项目中执行以下命令:

$ mvn mybatis-generator:generate

生成的Mapper类和DAO接口代码如下:

package com.example.mapper;

import com.example.entity.User;
import com.example.entity.UserExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface UserMapper {
    long countByExample(UserExample example);

    int deleteByExample(UserExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(User record);

    int insertSelective(User record);

    List<User> selectByExample(UserExample example);

    User selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);

    int updateByExample(@Param("record") User record, @Param("example") UserExample example);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);
}
package com.example.mapper;

import com.example.entity.User;
import com.example.entity.UserExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface UserMapper {
    long countByExample(UserExample example);

    int deleteByExample(UserExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(User record);

    int insertSelective(User record);

    List<User> selectByExample(UserExample example);

    User selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);

    int updateByExample(@Param("record") User record, @Param("example") UserExample example);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);
}

结语

本文详细讲解了MyBatis Generator的使用方法,并演示了如何生成带注释的实体类。希望对读者有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis generator 使用方法教程(生成带注释的实体类) - Python技术站

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

相关文章

  • 使用FileReader采用的默认编码

    使用FileReader对象默认采用的编码方式为UTF-8编码。但是,你也可以通过指定readAsText方法的第二个参数,来指定读取文件的编码方式。下面是使用FileReader对象进行文件读取的攻略: 步骤一:创建FileReader对象 在javascript中创建FileReader对象,可以使用下面的代码: var reader = new Fil…

    Java 2023年5月20日
    00
  • Java反射之通过反射获取一个对象的方法信息(实例代码)

    使用Java反射可以在运行时获取一个类的各种信息,包括类的属性、方法、构造器等。本文将介绍如何通过反射获取一个对象的方法信息,并提供两个示例进行说明。 获取对象的方法信息 要获取一个对象的方法信息,需要使用Java反射中的Method类。Method类提供了关于类或接口中单独某个方法的信息和访问权限。 使用反射获取对象的方法信息的步骤如下: 获取该类的Cla…

    Java 2023年5月26日
    00
  • SpringBoot 过滤器、拦截器、监听器对比及使用场景分析

    SpringBoot 过滤器、拦截器、监听器对比及使用场景分析 在Spring Boot应用程序中,我们可以使用过滤器、拦截器和监听器来处理请求和响应。这三种技术都可以用于处理请求和响应,但它们之间有一些区别。在本文中,我们将详细介绍这三种技术的区别,并分析它们的使用场景。 过滤器 过滤器是Java Servlet规范中定义的一种技术,用于在请求到达Serv…

    Java 2023年5月18日
    00
  • SpringMVC接收前台传递过来的值的实例

    下面我来详细讲解“SpringMVC接收前台传递过来的值的实例”的完整攻略。 1. 前置条件 在开始之前,需要保证你已经: 安装了Java开发环境(JDK) 安装了Spring框架 2. 实例1:接收表单数据 假设我们有一个表单页面,其中包含一个输入框和一个提交按钮,我们需要在后台接收前台传递过来的输入框的值。以下是实现过程: 在表单页面中,添加一个输入框和…

    Java 2023年6月15日
    00
  • Java Apache Commons报错“PatternSyntaxException”的原因与解决方法

    “ParserConfigurationException”是Java的Apache Commons类库中的一个异常,通常由以下原因之一引起: 无效的配置:如果配置无效,则可能会出现此错误。在这种情况下,需要检查配置以解决此问题。 无效的输入:如果输入无效,则可能会出现此错误。在这种情况下,需要检查输入以解决此问题。 以下是两个实例: 例1 如果配置无效,则…

    Java 2023年5月5日
    00
  • select下拉菜单实现二级联动效果

    要使用select下拉菜单实现二级联动效果,需要以下步骤: 创建HTML结构,包括两个select元素,分别用于显示一级和二级选项,以及相应的label元素。 示例代码: <label for="province">选择省份:</label> <select name="province"…

    Java 2023年6月15日
    00
  • 面试题快慢链表和快慢指针

    快慢链表和快慢指针是算法中常见的一种技巧。它们在链表中查找中间节点、判断链表是否有环等情况下十分实用。下面就对快慢链表和快慢指针的使用进行详细讲解。 快慢指针 快慢指针的基本思想是将两个指针指向链表的头节点,快指针每次走两步,慢指针每次走一步,当快指针走到链表的末尾时,慢指针指向的就是链表的中间节点。 示例 1: 找到链表的中间节点 我们有一个链表,包含以下…

    Java 2023年5月19日
    00
  • springboot 动态数据源的实现方法(Mybatis+Druid)

    关于Spring Boot动态数据源的实现方法,我将介绍如何使用Mybatis和Druid实现,下面是详细步骤: 1. 引入相关依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</art…

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