MybatisPlus——代码生成器

目录

[10 代码生成器](#10 代码生成器)

[10.1 生成的内容](#10.1 生成的内容)

[10.2 代码实现](#10.2 代码实现)


10 代码生成器

10.1 生成的内容

MyBatis-Plus 的代码生成器(AutoGenerator)能根据数据库表结构,自动生成从数据层(Mapper)到业务层(Service)再到控制层(Controller)的全套代码,开发者只需专注于业务逻辑即可。具体包括:

  1. 实体类
    对应数据库表结构

    package com.qcby.mybatisplus1129.entity;

    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableName;
    import java.io.Serializable;

    /**

    • @author 03666

    • @since 2025-11-30
      */
      @TableName("tx_user")
      public class User implements Serializable {

      private static final long serialVersionUID = 1L;

      /**

      • 主键ID
        */
        @TableId(value = "id", type = IdType.AUTO)
        private Long id;

      /**

      • 姓名
        */
        private String name;

      /**

      • 年龄
        */
        private Integer age;

      /**

      • 邮箱
        */
        private String email;

      /**

      • 逻辑删除
        */
        private Integer isDeleted;

      private Integer sex;

      public Long getId() {
      return id;
      }

      public void setId(Long id) {
      this.id = id;
      }
      public String getName() {
      return name;
      }

      public void setName(String name) {
      this.name = name;
      }
      public Integer getAge() {
      return age;
      }

      public void setAge(Integer age) {
      this.age = age;
      }
      public String getEmail() {
      return email;
      }

      public void setEmail(String email) {
      this.email = email;
      }
      public Integer getIsDeleted() {
      return isDeleted;
      }

      public void setIsDeleted(Integer isDeleted) {
      this.isDeleted = isDeleted;
      }
      public Integer getSex() {
      return sex;
      }

      public void setSex(Integer sex) {
      this.sex = sex;
      }

      @Override
      public String toString() {
      return "User{" +
      "id=" + id +
      ", name=" + name +
      ", age=" + age +
      ", email=" + email +
      ", isDeleted=" + isDeleted +
      ", sex=" + sex +
      "}";
      }
      }

  2. Mapper 接口
    继承BaseMapper

    package com.qcby.mybatisplus1129.mapper;

    import com.qcby.mybatisplus1129.entity.User;
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;

    /**

    • Mapper 接口
    • @author 03666
    • @since 2025-11-30
      */
      public interface UserMapper extends BaseMapper {

    }

  3. Service 接口及实现类
    Service 接口继承IService

    package com.qcby.mybatisplus1129.service;

    import com.qcby.mybatisplus1129.entity.User;
    import com.baomidou.mybatisplus.extension.service.IService;

    /**

    • 服务类
    • @author 03666
    • @since 2025-11-30
      */
      public interface IUserService extends IService {

    }

实现类继承ServiceImpl

复制代码
package com.qcby.mybatisplus1129.service.impl;

import com.qcby.mybatisplus1129.entity.User;
import com.qcby.mybatisplus1129.mapper.UserMapper;
import com.qcby.mybatisplus1129.service.IUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author 03666
 * @since 2025-11-30
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {

}
  1. Controller 层

    package com.qcby.mybatisplus1129.controller;

    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.stereotype.Controller;

    /**

    • 前端控制器
    • @author 03666
    • @since 2025-11-30
      */
      @Controller
      @RequestMapping("/mybatisplus1129/user")
      public class UserController {

    }

  2. Mapper XML 文件
    包含基础的 SQL 标签骨架。

10.2 代码实现

  1. 引入依赖

    com.baomidou mybatis-plus-generator 3.5.1 org.freemarker freemarker
  2. 快速生成

    package com.qcby.mybatisplus1129.config;

    import com.baomidou.mybatisplus.generator.FastAutoGenerator;
    import com.baomidou.mybatisplus.generator.config.OutputFile;
    import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

    import java.util.Collections;

    public class FastAutoGeneratorTest {
    public static void main(String[] args) {
    FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/mybatis_plus?characterEncoding=utf-8&userSSL=false",
    "root",
    "036520")
    //全局配置
    .globalConfig(builder -> {
    builder.author("03666") // 设置作者
    //.enableSwagger() // 开启 swagger 模式
    .fileOverride() // 覆盖已生成文件
    .outputDir("D://mybatis_plus"); // 指定输出目录,会自己创建
    })
    //设置包的
    .packageConfig(builder -> {
    builder.parent("com.qcby") // 设置父包名
    .moduleName("mybatisplus1129") // 设置父包模块名
    .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://mybatis_plus"));
    // 设置mapperXml生成路径
    })
    //策略的配置
    .strategyConfig(builder -> {
    builder.addInclude("tx_user") // 设置需要生成的表名,如果要设多个值就用逗号隔开
    .addTablePrefix("tx_", "c_"); // 设置过滤表前缀 可以设置多个值
    })
    .templateEngine(new FreemarkerTemplateEngine())
    // 使用Freemarker引擎模板,默认的是Velocity引擎模板
    //.execute()执行的意思
    .execute();
    }
    }

注:第31行代码设置需要过滤的数据库表前缀,生成代码时会自动去掉这些前缀,让生成的实体类名称更简洁。比如:数据库表名是 tx_user,前缀是 tx_,生成的实体类名会是 User(去掉 tx_);

运行后会自动跳出这个页面

相关推荐
Omics Pro6 分钟前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
JAVA面经实录9171 小时前
Hibernate面试题库
数据库·oracle·hibernate
迷枫7122 小时前
DM8 目录结构与常用排查入口梳理
服务器·数据库
Mr.Daozhi3 小时前
RAG 进阶实战:跑通 Demo 后我连续翻了 6 次车,逐一修复才真正可用(含 Gradio Web 版)
前端·数据库·langchain·大模型·gradio·rag·科研工具
小程故事多_803 小时前
Claude Code自定义workflow skills用法
数据库·人工智能·智能体
大鹏说大话3 小时前
SQL 排序与分组实战:解决“分组后取最新数据“
android·java·数据库
夏贰四3 小时前
数据建模工具如何筑牢数据根基?数据建模工具怎样落实标准体系?
数据库·数学建模·数据建模工具
程序猿阿伟5 小时前
《一套完整方法论:搞定图形应用的Docker镜像优化》
数据库·docker·容器
二等饼干~za8986685 小时前
geo优化源码开发搭建技术分享
大数据·网络·数据库·人工智能·音视频
数据库小学妹5 小时前
HTAP混合负载架构:如何用一个数据库同时搞定交易和分析
数据库·经验分享·架构·dba