代码自动生成器
需要导入的依赖
<!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <!-- 代码生成器 依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency> <!--模板引擎 依赖--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency>
具体代码
package top.luoking; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.po.TableFill; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import java.util.ArrayList; public class AutoCode { public static void main(String[] args) { AutoGenerator mpg = new AutoGenerator(); //全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); // gc.setOutputDir(projectPath+"/src/main/java"); //设置输出目录 gc.setAuthor("luoking"); gc.setOpen(false); gc.setFileOverride(false);//是否覆盖 gc.setServiceName("%sService");//去Service的I前缀 gc.setIdType(IdType.ASSIGN_ID); gc.setDateType(DateType.ONLY_DATE); //设置日期类型 gc.setSwagger2(true);//设置Swagger接口 mpg.setGlobalConfig(gc); //设置数据源 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?useSSl=false&useUnicode=true&characterEncoding=utf-8"); dsc.setUsername("root"); dsc.setPassword("root"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setDbType(DbType.MYSQL); mpg.setDataSource(dsc); //包的配置 PackageConfig pc = new PackageConfig(); pc.setModuleName("AutoCode");//设置模块名 pc.setParent("top.luoking");//设置父包名 pc.setEntity("pojo");//实体类包名 pc.setService("Service"); pc.setMapper("mapper"); pc.setController("controller"); mpg.setPackageInfo(pc); //策略配置 StrategyConfig sc = new StrategyConfig(); sc.setInclude("user");//要映射的表名 sc.setColumnNaming(NamingStrategy.underline_to_camel);//下划线可以为驼峰命名 sc.setEntityLombokModel(true);//自动Lombok sc.setLogicDeleteFieldName("deleted");//逻辑删除字段 //自动配置 TableFill createTime = new TableFill("create_time", FieldFill.INSERT); TableFill updateTime = new TableFill("update_time", FieldFill.INSERT_UPDATE); ArrayList<TableFill> list = new ArrayList<>(); list.add(createTime); list.add(updateTime); sc.setTableFillList(list); //乐观锁 sc.setVersionFieldName("version"); sc.setRestControllerStyle(true); sc.setControllerMappingHyphenStyle(true); mpg.setStrategy(sc); mpg.execute();//执行 } }
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决