springboot 整合 mybatisplus 代码生成指定生成模板
时间: 2025-02-02 18:00:53 浏览: 34
### Spring Boot 整合 MyBatis Plus 并指定代码生成模板
在Spring Boot项目中整合MyBatis Plus并利用其AutoGenerator工具来自动生成代码,能够显著提高开发效率。为了进一步定制化这些自动生成的文件,比如修改默认的命名策略或是调整生成路径等,则需了解如何设置特定的代码生成模板。
#### 添加所需依赖项
确保`pom.xml`文件内包含了必要的Maven依赖以引入MyBatis Plus及其代码生成模块:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<!-- 用于代码生成 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis.plus.generator.version}</version>
</dependency>
<!-- 模板引擎, 如Freemarker 或 Velocity -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
```
#### 编写Java程序启动代码生成器
下面是一段完整的Java代码片段,展示了怎样通过编程方式配置和执行MyBatis Plus的代码生成功能,并指定了不同的模板选项:
```java
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.bottomAnchor.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class CodeGenerator {
public static void main(String[] args) {
// 自定义需要填充的内容
String packageName = "com.example";
boolean serviceNameStartWithI = false; // User -> UserService, 设置true: IUserService
// 获取数据源配置
DataSourceConfig dsc = new DataSourceConfig()
.setDbType(DbType.MYSQL)
.setTypeConvert(new MySqlTypeConvert())
.setDriverName("com.mysql.cj.jdbc.Driver")
.setUsername("root")
.setPassword("password")
.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8");
StrategyConfig strategy = new StrategyConfig()
.setNaming(NamingStrategy.underline_to_camel)
.setColumnNaming(NamingStrategy.underline_to_camel)
.setEntityLombokModel(true)
.setRestControllerStyle(true);
PackageConfig pc = new PackageConfig()
.setModuleName(null)
.setParent(packageName);
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setController("/templates/controller.java");
templateConfig.setService("/templates/service.java");
templateConfig.setServiceImpl("/templates/serviceImpl.java");
templateConfig.setMapper("/templates/mapper.java");
templateConfig.setXml("/templates/mapper.xml");
templateConfig.setEntity("/templates/entity.java");
GlobalConfig gc = new GlobalConfig()
.setAuthor("Your Name")
.setOpen(false)
.setFileOverride(true)
.setActiveRecord(true)
.setEnableCache(false)
.setBaseResultMap(true)
.setBaseColumnList(true)
.setSwagger2(true);
InjectionConfig cfg = new InjectionConfig((map) -> {});
AutoGenerator mpg = new AutoGenerator().setGlobalConfig(gc).setDataSource(dsc).setPackageInfo(pc).setCfg(cfg).setTemplate(templateConfig).setStrategy(strategy);
mpg.execute();
}
}
```
这段代码不仅设置了基本的数据源连接参数、全局配置属性以及包名映射关系,还特别强调了对`TemplateConfig`对象的操作——即允许用户自行设定各个组件所使用的具体模板位置[^1]。
对于想要深入理解或修改生成逻辑的人来说,在上述基础上还可以继续探索更多高级特性,例如注入额外变量至模板上下文中以便于动态控制输出内容;或者基于业务场景需求调整表/列过滤规则等等[^4]。
阅读全文
相关推荐


















