新版SpringBoot3.X+MybatisPlus逆向工程实战
引言
通过前两篇博文的学习,我相信你已经完成了对数据库的表的创建。
这一篇博文,我们将会进行新版SpringBoot3.X + MybatisPlus的逆向工程实战。
逆向工程代码
public class MyBatisPlusGenerator {public static void main(String[] args) {String userName = "root"; String password = "YOUR_PASSWORD"; //数据库密码String serverInfo = "YOUR_IP:3306"; //服务器公网IPString targetModuleNamePath = "/XXXcloud-engine"; //目标模块路径String dbName = "YOUR_DB_NAME"; //数据库名称String[] tables = {"project", "environment","stress_case_module", "stress_case" //这里是数据库里的表名称};// 数据源配置FastAutoGenerator.create("jdbc:mysql://"+serverInfo+"/"+dbName+"?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=true", userName, password).globalConfig(builder -> {builder.author("YOUR_NAME,") // 设置作者.commentDate("yyyy-MM-dd").enableSpringdoc().disableOpenDir() //禁止打开输出目录.dateType(DateType.ONLY_DATE) //定义生成的实体类中日期类型 DateType.ONLY_DATE 默认值: DateType.TIME_PACK.outputDir(System.getProperty("user.dir") + targetModuleNamePath + "/src/main/java"); // 指定输出目录}).dataSourceConfig(builder -> {//Mysql下tinyint字段转换builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {if (JdbcType.TINYINT == metaInfo.getJdbcType()) {return DbColumnType.BOOLEAN;}return typeRegistry.getColumnType(metaInfo);});}).templateConfig(builder -> {//设置不生成controller和servicebuilder.disable(TemplateType.CONTROLLER,TemplateType.SERVICE,TemplateType.SERVICE_IMPL);}).packageConfig(builder -> {builder.parent("YOUR_NAME") // 父包模块名.entity("model") //Entity 包名 默认值:entity.mapper("mapper") //Mapper 包名 默认值:mapper.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + targetModuleNamePath + "/src/main/resources/mapper")); // 设置mapperXml生成路,默认存放在mapper的xml下}).strategyConfig(builder -> {builder.addInclude(tables) // 设置需要生成的表名 可变参数.entityBuilder()// Entity策略配置.enableFileOverride() // 开启生成Entity层文件覆盖.idType(IdType.ASSIGN_ID)//主键策略 雪花算法自动生成的id.enableLombok() //开启lombok.logicDeleteColumnName("deleted")// 说明逻辑删除是哪个字段.enableTableFieldAnnotation()// 属性加上注解说明.formatFileName("%sDO").controllerBuilder()// Controller策略配置.enableFileOverride() // 开启生成Controller层文件覆盖.serviceBuilder()// Service策略配置.enableFileOverride() // 开启生成Service层文件覆盖.superServiceClass("").superServiceImplClass("").formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImpl").mapperBuilder()// Mapper策略配置.enableFileOverride() // 开启生成Mapper层文件覆盖.formatMapperFileName("%sMapper").superClass(BaseMapper.class).enableBaseResultMap().enableBaseColumnList().formatXmlFileName("%sMapper");}).execute();}}
以上代码千万不要死记硬背,当需要的时候,copy过去即可,修改一下相关参数即可。