您当前的位置: 首页 >  mybatis

培根芝士

暂无认证

  • 3浏览

    0关注

    446博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SpringBoot集成MyBatis-Plus代码生成器FastAutoGenerator

培根芝士 发布时间:2022-07-08 18:51:15 ,浏览量:3

MyBatis-Plus提供FastAutoGenerator代码生成器,根据数据库中已经存在的表,生成Entity、Mapper、Mapper XML、Service、Controller等各个模块的代码,可以极大的提升开发效率。

1、添加依赖

     mysql
     mysql-connector-java
     runtime



     com.baomidou
     mybatis-plus-boot-starter
     3.5.1



    com.baomidou
     mybatis-plus-generator
     3.5.1
 2、创建快速代码生成器
public class GeneratorUtil {
    public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/testdb?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8", "username", "password")
                //全局配置
                .globalConfig(builder -> {
                    builder.author("hepburn") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir("/home/demo/src/main/java/"); // 指定输出目录
                })
                //包配置
                .packageConfig(builder -> {
                    builder.parent("com.example.demo") // 设置父包名
                            .moduleName("domain") // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "/home/demo/src/main/resources/mybatis/mapper")); // 设置mapperXml生成路径
                })
                //策略配置
                .strategyConfig(builder -> {
                    builder.addInclude("specifications", "sensitive_types", "sensitive_levels", "sensitive_elements", "sensitive_elements_rules", "detection_strategies", "algorithm_models", "algorithm_labels", "strategys") // 设置需要生成的表名
                            .addTablePrefix("t_", "c_"); // 设置过滤表前缀
                })
                //.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }
}
3、修改application.properties配置文件
#mysql
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.hikari.minimum-idle=3
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.max-lifetime=30000
spring.datasource.hikari.connection-test-query=SELECT 1
#mybatis-plus
mybatis-plus.mapper-locations=classpath*:mybatis/mapper/*Mapper.xml
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
4、运行GeneratorUtil生成代码

执行完成。就可以看到项目结构和文件已经生成好了。

配置说明 1. 数据库配置(DataSourceConfig) 1.1 基础配置 属性说明示例urljdbc路径jdbc:mysql://localhost:3306/(数据库名称)username数据库账号rootpassword数据库密码123456 1.2 可选配置

方法说明示例 / 参数dbQuery(IDbQuery)数据库查询new MySqlQuery()schema(String)数据库 schema(部分数据库适用)mybatis-plustypeConvert(ITypeConvert)数据库类型转换器new MySqlTypeConvert()keyWordsHandler(IKeyWordsHandler)数据库关键字处理器new MySqlKeyWordsHandler() 2. 全局配置(GlobalConfig) 方法说明示例 / 参数fileOverride覆盖已生成文件默认值:falsedisableOpenDir禁止打开输出目录默认值:trueoutputDir(String)指定输出目录projectPath + “/src/main/java”(当前工程路径+"/src/main/java")author(String)作者名vinjcentenableKotlin开启 kotlin 模式默认值:falseenableSwagger开启 swagger 模式默认值:falsedateType(DateType)时间类型ONLY_DATE、SQL_PACK、TIME_PACK(jdk1.8以上才支持,推荐使用)commentDate(String)注释日期默认值:yyyy-MM-dd,可使用"“yyyy-MM-dd HH:mm:ss”" 3. 包配置(PackageConfig) 方法说明示例 / 参数parent(String)父包名默认值:com.vinjcentmoduleName(String)父包模块名默认值:无entity(String)实体类 Entity 包名默认值:entityservice(String)Service 包名默认值:serviceserviceImpl(String)实现类 Service Impl 包名默认值:service.implmapper(String)Mapper 包名默认值:mappermapperXml(String)Mapper XML 包名默认值:mapper.xmlcontroller(String)Controller 包名默认值:controllerother(String)自定义文件包名可使用"other",生产一个other文件目录pathInfo(Map)路径配置信息Collections.singletonMap(OutputFile.mapperXml, “D://”) 4. 模板配置(TemplateConfig) 方法说明示例 / 参数disable禁用所有模板disable(TemplateType…)禁用模板TemplateType.ENTITYentity(String)设置实体模板路径(JAVA)/templates/entity.javaentityKt(String)设置实体模板路径(kotlin)/templates/entity.javaservice(String)设置 service 模板路径/templates/service.javaserviceImpl(String)设置 serviceImpl 模板路径/templates/serviceImpl.javamapper(String)设置 mapper 模板路径/templates/mapper.javamapperXml(String)设置 mapperXml 模板路径/templates/mapper.xmlcontroller(String)设置 controller 模板路径/templates/controller.java 5. 注入配置(InjectionConfig) 方法说明示例 / 参数beforeOutputFile(BiConsumer)输出文件之前消费者customMap(Map)自定义配置 Map 对象Collections.singletonMap(“test”, “baomidou”)customFile(Map)自定义配置模板文件Collections.singletonMap(“test.txt”, “/templates/test.vm”) 6. 策略配置(StrategyConfig) 方法说明示例 / 参数enableCapitalMode开启大写命名默认值:falseenableSkipView开启跳过视图默认值:falsedisableSqlFilter禁用 sql 过滤默认值:true,语法不能支持使用 sql 过滤表的话,可以考虑关闭此开关enableSchema启用 schema默认值:false,多 schema 场景的时候打开likeTable(LikeTable)模糊表匹配(sql 过滤)likeTable 与 notLikeTable 只能配置一项notLikeTable(LikeTable)模糊表排除(sql 过滤)likeTable 与 notLikeTable 只能配置一项addInclude(String…)增加表匹配(内存过滤)include 与 exclude 只能配置一项addExclude(String…)增加表排除匹配(内存过滤)include 与 exclude 只能配置一项addTablePrefix(String…)增加过滤表前缀addTablePrefix(String…)增加过滤表前缀addTableSuffix(String…)增加过滤表后缀addFieldPrefix(String…)增加过滤字段前缀addFieldSuffix(String…)增加过滤字段后缀entityBuilder实体策略配置controllerBuildercontroller 策略配置mapperBuildermapper 策略配置serviceBuilderservice 策略配置 6.1 Entity 策略配置 方法说明示例 / 参数nameConvert(INameConvert)名称转换实现superClass(Class)设置父类BaseEntity.classsuperClass(String)设置父类com.baomidou.global.BaseEntitydisableSerialVersionUID禁用生成 serialVersionUID默认值:trueenableColumnConstant开启生成字段常量默认值:falseenableChainModel开启链式模型默认值:falseenableLombok开启 lombok 模型默认值:falseenableRemoveIsPrefix开启 Boolean 类型字段移除 is 前缀默认值:falseenableTableFieldAnnotation开启生成实体时生成字段注解默认值:falseenableActiveRecord开启 ActiveRecord 模型默认值:falseversionColumnName(String)乐观锁字段名(数据库)versionPropertyName(String)乐观锁属性名(实体)logicDeleteColumnName(String)逻辑删除字段名(数据库)logicDeletePropertyName(String)逻辑删除属性名(实体)naming数据库表映射到实体的命名策略默认下划线转驼峰命名:NamingStrategy.underline_to_camelcolumnNaming数据库表字段映射到实体的命名策略默认为 null,未指定按照 naming 执行addSuperEntityColumns(String…)添加父类公共字段addIgnoreColumns(String…)添加忽略字段addTableFills(IFill…)添加表字段填充addTableFills(List)添加表字段填充idType(IdType)全局主键类型convertFileName(ConverterFileName)转换文件名称formatFileName(String)格式化文件名称 6.2 Controller 策略配置 方法说明示例 / 参数superClass(Class)设置父类BaseController.classsuperClass(String)设置父类com.baomidou.global.BaseControllerenableHyphenStyle开启驼峰转连字符默认值:falseenableRestStyle开启生成@RestController 控制器默认值:falseconvertFileName(ConverterFileName)转换文件名称formatFileName(String)格式化文件名称 6.3 Service 策略配置 方法说明示例 / 参数superServiceClass(Class)设置 service 接口父类BaseService.classsuperServiceClass(String)设置 service 接口父类com.baomidou.global.BaseServicesuperServiceImplClass(Class)设置 service 实现类父类BaseServiceImpl.classsuperServiceImplClass(String)设置 service 实现类父类com.baomidou.global.BaseServiceImplconvertServiceFileName(ConverterFileName)转换 service 接口文件名称convertServiceImplFileName(ConverterFileName)转换 service 实现类文件名称formatServiceFileName(String)格式化 service 接口文件名称formatServiceImplFileName(String)格式化 service 实现类文件名称 6.4 Mapper 策略配置 方法说明示例 / 参数superClass(Class)设置父类BaseMapper.classsuperClass(String)设置父类com.baomidou.global.BaseMapperenableMapperAnnotation开启 @Mapper 注解默认值:falseenableBaseResultMap启用 BaseResultMap 生成默认值:falseenableBaseColumnList启用 BaseColumnList默认值:falsecache(Class
关注
打赏
1660824269
查看更多评论
立即登录/注册

微信扫码登录

1.2346s