【mybatis】MyBatis-Plus 代码生成器
数据源配置用于指定需要生成代码的具体数据库。通过配置数据源,代码生成器能够连接到数据库并获取表结构信息,以便生成相应的代码。数据库表配置用于指定需要生成哪些表的代码或者排除哪些表。通过策略配置,可以灵活地控制代码生成的范围。通过注入配置,可以在代码生成过程中添加额外的逻辑。模板配置允许自定义代码生成的模板,实现个性化操作。通过模板配置,可以定制生成代码的格式和内容。通过配置包名,可以确保生成的代码
·
1、简介
- MyBatis-Plus 代码生成器是一个强大的工具,它能够根据数据库表结构自动生成对应的实体类、Mapper接口、XML映射文件以及Service层代码。
- 这个工具极大地简化了基于MyBatis框架的开发流程,提高了开发效率,尤其是在需要处理大量数据库表时。
2、主要特点
- 自动化:代码生成器能够自动根据数据库表结构生成相应的Java代码,减少了手动编写重复代码的工作量。
- 可配置性:通过配置文件或代码,可以灵活地指定生成代码的包路径、表名、字段名、模板等,满足不同项目的需求。
- 模板支持:支持自定义代码模板,可以根据项目需求定制代码风格和结构。
- 多数据库支持:支持多种数据库类型,如MySQL、Oracle、SQL Server等,只需配置相应的数据库连接信息即可。
- 集成简单:可以轻松集成到现有的项目中,只需几行代码即可启动代码生成过程。
3、使用场景
- 新项目搭建:在新项目开始时,可以使用代码生成器快速生成基础的CRUD代码,加快项目启动速度。
- 表结构变更:当数据库表结构发生变化时,可以通过代码生成器更新对应的Java代码,保持代码与数据库的一致性。
- 重复性工作:在需要编写大量相似CRUD操作的场景中,代码生成器可以显著减少重复劳动,提高开发效率。
4、使用流程
- 配置数据源:指定数据库类型、连接URL、用户名和密码等。
- 配置策略:选择需要生成代码的表,设置表名和字段名的命名策略等。
- 配置包信息:设置生成代码的包路径,包括实体类、Mapper接口、Service等。
- 配置模板:如果需要自定义代码风格,可以配置或创建自定义的代码模板。
- 执行生成:运行代码生成器,根据配置生成相应的Java代码。
5、配置使用
5.1 数据源配置(dataSource)
- 类型:
DataSourceConfig - 默认值:
null
数据源配置用于指定需要生成代码的具体数据库。通过配置数据源,代码生成器能够连接到数据库并获取表结构信息,以便生成相应的代码。
示例配置:
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL) // 设置数据库类型,如MySQL、Oracle等
.setUrl("jdbc:mysql://localhost:3306/mybatis_plus") // 数据库连接URL
.setUsername("root") // 数据库用户名
.setPassword("password") // 数据库密码
.setDriverName("com.mysql.cj.jdbc.Driver"); // 数据库驱动类名
5.2 数据库表配置(strategy)
- 类型:
StrategyConfig - 默认值:
null
数据库表配置用于指定需要生成哪些表的代码或者排除哪些表。通过策略配置,可以灵活地控制代码生成的范围。
示例配置:
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("user", "order") // 指定需要生成代码的表名
.setExclude("user_detail") // 排除不需要生成代码的表名
.setEntityLombokModel(true) // 设置实体类使用Lombok模型
.setRestControllerStyle(true); // 设置Controller使用REST风格
5.3 包名配置(packageInfo)
- 类型:
PackageConfig - 默认值:
null
包名配置用于指定生成代码的包路径。通过配置包名,可以确保生成的代码放置在正确的目录结构中。
示例配置:
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example") // 设置父包名
.setMapper("mapper") // 设置Mapper接口所在的子包名
.setEntity("entity") // 设置实体类所在的子包名
.setController("controller"); // 设置Controller所在的子包名
5.4 模板配置(template)
- 类型:
TemplateConfig - 默认值:
null
模板配置允许自定义代码生成的模板,实现个性化操作。通过模板配置,可以定制生成代码的格式和内容。
示例配置:
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setXml(null) // 不生成XML文件
.setController("templates/controller.java.vm") // 设置Controller模板路径
.setEntity("templates/entity.java.vm") // 设置实体类模板路径
.setMapper("templates/mapper.java.vm"); // 设置Mapper接口模板路径
5.5 全局策略配置(globalConfig)
- 类型:
GlobalConfig - 默认值:
null
全局策略配置提供了一些全局的设置,如作者信息、生成路径等。
示例配置:
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir("src/main/java") // 设置生成代码的输出目录
.setAuthor("Your Name") // 设置作者信息
.setOpen(false) // 设置生成后是否自动打开目录
.setFileOverride(true); // 设置文件存在时是否覆盖
5.6 注入配置(injectionConfig)
- 类型:
InjectionConfig - 默认值:
null
注入配置允许注入自定义参数等操作以实现个性化操作。通过注入配置,可以在代码生成过程中添加额外的逻辑。
示例配置:
InjectionConfig injectionConfig = new InjectionConfig() {
// 自定义注入参数
@Override
public void initMap() {
// to do nothing
}
// 自定义参数
@Override
public MappedStatement injectMappedStatement(MappedStatement ms, Configuration configuration, SqlSource sqlSource, String mapperId) {
// 自定义注入逻辑
return ms;
}
};
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)