MyBatis-Plus-Generator 代码生成器(Version 3.5.1+)
MyBatis-Plus 代码生成器(AutoGenerator)是 MyBatis-Plus 提供的一个强大的代码生成工具,可以快速生成 Entity、Mapper、Service、Controller 等各层代码,极大提高开发效率。
·
MyBatis-Plus 代码生成器(AutoGenerator)是 MyBatis-Plus 提供的一个强大的代码生成工具,可以快速针对数据库表内字段信息生成 Entity、Mapper、Service、Controller 等各层代码,极大提高开发效率。
官网地址:代码生成器 | MyBatis-Plus
引入依赖:
<!-- 只用swagger注解, 缩小依赖的lib包 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.20</version>
</dependency>
<!--注意 SpringBoot3的依赖与Spring Boot2的MybatisPlus并不相同 错用会报错-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.5</version>
</dependency>
<!-- 自动扫描代码生成 OpenAPI 规范文档 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<!-- freemarker,作为代码生成器mapper文件的模板引擎使用(当然也可以使用velocity,二选一即可) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- 必须引入的两个依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.4.3.2</version>
</dependency>
<!-- MyBatis-Plus 代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.12</version>
</dependency>
<!-- Druid依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
<!-- 数据库连接依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
随后根据TODO的位置更改成自己的信息即可:
package com.xuecheng.generator;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.model.ClassAnnotationAttributes;
import org.apache.ibatis.annotations.Mapper;
import java.sql.Types;
import java.util.Collections;
public class MybatisPlusGenerator {
// TODO 修改服务名以及数据表名
private static final String SERVICE_NAME = "content";
// TODO 数据库账号
private static final String DATA_SOURCE_USER_NAME = "root";
// TODO 数据库密码
private static final String DATA_SOURCE_PASSWORD = "1234";
/**
* 实际使用版
* Spring Boot项目生成全部表示例,有调整可以自己修改
*/
public static void generator() {
System.out.println("MyBatis-Plus代码生成器将生成的代码输出到" + (System.getProperty("user.dir")+"/src/main/java") + "目录下");
// TODO 更改自己的 MySQL 数据库地址
FastAutoGenerator.create("jdbc:mysql://localhost:3306/" + SERVICE_NAME
+ "?serverTimezone=UTC&useUnicode=true&useSSL=false&characterEncoding=utf8", DATA_SOURCE_USER_NAME, DATA_SOURCE_PASSWORD)
.globalConfig(builder -> {
builder.outputDir((System.getProperty("user.dir")+"/src/main/java")) // 指定输出目录
.disableOpenDir() // 生成后不打开文件夹
.author("eleven") // 设置作者
.enableSwagger(); // 开启 swagger 模式
})
.dataSourceConfig(builder ->
builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
int typeCode = metaInfo.getJdbcType().TYPE_CODE;
if (typeCode == Types.SMALLINT) {
// 自定义类型转换
return DbColumnType.INTEGER; // 将数据库的SMALLINT映射为Java的Integer
}
return typeRegistry.getColumnType(metaInfo); // 其他类型按默认规则转换
})
)
.packageConfig(builder -> {
builder.parent("cn.eleven") // 父包名
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir")+"/src/main/resources/mapper")); // XML文件输出目录
})
.strategyConfig(builder -> {
builder.enableSkipView() // 跳过视图(不生成视图相关代码)
.entityBuilder().enableLombok(new ClassAnnotationAttributes("@Data","lombok.Data")) // 实体类使用Lombok的@Data注解
.mapperBuilder().mapperAnnotation(Mapper.class); // 为Mapper接口添加@Mapper注解
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker模板引擎
.execute(); // 执行代码生成
}
public static void main(String[] args) {
generator(); // 实际使用版
}
}

MyBatis-Plus 支持多种模板引擎(如 Freemarker、Velocity、Beetl),它们负责:
- 定位模板文件:从类路径(
classpath)或指定目录中查找模板。 - 绑定变量:将数据库表结构、配置参数等注入模板。
- 渲染输出:生成最终的 Java、XML 等代码文件。
模板文件默认内置于生成器 JAR 包中,路径为:com/baomidou/mybatisplus/generator/engine/templates/
包含以下关键模板:
- Entity.java.ftl // 实体类模板
- Mapper.java.ftl // Mapper接口模板
- Mapper.xml.ftl // XML映射文件模板
- Service.java.ftl // Service接口模板
- ServiceImpl.java.ftl // Service实现类模板
- Controller.java.ftl // Controller模板
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)