hami-MyBatis 逆向 ## 逆向工程配置与使用

MyBatis 逆向 ## 逆向工程配置与使用

1. 核心依赖(pom.xml)

xml

复制代码
<!-- MyBatis 核心依赖 -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.5</version>
</dependency>

<!-- MyBatis 逆向工程依赖 -->
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.7</version>
</dependency>

<!-- 数据库驱动 -->
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.0.33</version>
</dependency>

2. 逆向工程配置文件(generatorConfig.xml)

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="mybatisGenerator" >
        <!-- 去除自动生成的注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        
        <!-- 数据库连接配置 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/ham?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        <!-- 类型解析器 -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 生成POJO类的位置 -->
        <javaModelGenerator targetPackage="com.qcby.model"
                            targetProject=".\hami_core\src\main\java">
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 生成Mapper映射文件的位置 -->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject=".\hami_core\src\main\resources">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成Mapper接口的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.qcby.dao"
                             targetProject=".\hami_core\src\main\java">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 指定要生成的表 -->
        <table tableName="album" 
               enableCountByExample="false"
               enableUpdateByExample="false" 
               enableDeleteByExample="false"
               enableSelectByExample="false" 
               selectByExampleQueryId="false"/>
    </context>
</generatorConfiguration>

3. 逆向工程执行类

复制代码
package com.qcby.util;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class Generator {

    public void generator() throws Exception {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        // 指向逆向工程配置文件
        File configFile = new File("hami_core/src/main/resources/generatorConfig.xml");
        ConfigurationParser parser = new ConfigurationParser(warnings);
        Configuration config = parser.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }

    public static void main(String[] args) throws Exception {
        try {
            Generator generatorSqlmap = new Generator();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4. 逆向工程生成的文件说明

  1. 实体类(Model)

    • 对应数据库表结构的 JavaBean
    • 包含字段的 getter/setter 方法
    • 示例:Album.java、Song.java等
  2. Mapper 接口

    • 数据访问层接口,定义数据库操作方法
    • 包路径:com.qcby.dao
    • 示例:AlbumMapper.java
  3. Mapper 映射文件

    • XML 格式,实现 Mapper 接口的方法
    • 包含 CRUD 基本操作的 SQL 语句
    • 存放路径:src/main/resources/mapper
    • 示例:

    xml

    复制代码
    <!-- 基本查询示例 -->
    <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
      select 
      <include refid="Base_Column_List" />
      from album
      where AID = #{aid,jdbcType=INTEGER}
    </select>

5. 关键配置说明

  • 数据库连接配置:指定数据库驱动、连接地址、用户名和密码
  • 生成路径配置
    • javaModelGenerator:实体类生成路径
    • sqlMapGenerator:Mapper XML 文件生成路径
    • javaClientGenerator:Mapper 接口生成路径
  • 表配置
    • tableName:数据库表名
    • 关闭 Example 相关方法:enableCountByExample等设为 false,简化生成代码

6. 使用方法

  1. 配置好generatorConfig.xml中的数据库连接和生成路径
  2. table标签中添加需要生成代码的表名
  3. 运行Generator类的main方法
  4. 自动生成实体类、Mapper 接口和映射文件

通过 MyBatis 逆向工程,可以快速生成数据库表对应的基础操作代码,减少重复开发工作,提高开发效率。生成的代码包含了基本的 CRUD 操作,可以直接使用或在此基础上进行扩展。

相关推荐
5***84642 小时前
【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus
spring boot·后端·mybatis
m***56722 小时前
Spring 中使用Mybatis,超详细
spring·tomcat·mybatis
qq_2704900963 小时前
基于SSM的智能校内点餐系统设计与实现
java·eclipse·tomcat·mybatis
好好研究5 小时前
MyBatis框架 - 逆向工程
java·数据库·mybatis
o***74175 小时前
SpringBoot【十一】mybatis-plus实现多数据源配置,开箱即用!
spring boot·后端·mybatis
3***C7447 小时前
Spring Boot 集成 MyBatis 全面讲解
spring boot·后端·mybatis
r***R2897 小时前
Spring Boot3.3.X整合Mybatis-Plus
spring boot·后端·mybatis
y***61317 小时前
SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)
spring boot·tomcat·mybatis
creator_Li8 小时前
手写Redis系列:二、简单动态字符串SDS
数据库·redis·mybatis