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_);

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

相关推荐
严同学正在努力9 小时前
从备份到恢复:我用 30 分钟恢复了误删的核心业务表
android·java·数据库·ai
#六脉神剑10 小时前
myBuilder新版本(8月,Office文件预览、Oracle数据库支持)
数据库·oracle·开发平台·数字化工具·mybuilder
花青泽10 小时前
5-数据库-SQL注入-联合查询-AND/OR绕过-day13
数据库·sql
踏着七彩祥云的小丑10 小时前
忘记Redis是否安装过时查看
数据库·redis·缓存
Nontee11 小时前
设计模式:模板方法与策略,从“每个字都认识“到能说清它们在干嘛
java·数据库·设计模式
眞bilibili12 小时前
带团队后的日常思考(十七)
数据库
laboratory agent开发12 小时前
智能体多工具串联执行中途失败,部分写入的数据如何回滚
运维·服务器·数据库
段一凡-华北理工大学13 小时前
AI推动工业智能化转型~系列文章07:分类与诊断算法体系:故障识别的完整工具箱
数据库·人工智能·算法·机器学习·分类·数据挖掘·高炉炼铁智能化
DBA_G13 小时前
南大通用GBase HD数据平台讲解
数据库
foolishlee13 小时前
Neon wal日志处理流程
数据库