mybatis-plus-generator,mybatis-plus构造器
目录
1.背景2.引入冲突包3.自动生成代码4.修改*Mapper.xml文件的生成位置4.1 默认*Mapper.xml文件生成位置4.2 修改*Mapper.xml文件生成位置
1.背景
可以使用麦巴蒂斯加发电机逆向生成大刀层、服务层、控制器层等代码
2.引入jar包
米巴提斯加发电机在3.5.0以及以后的版本使用新的方式逆向生成代码。
这里介绍使用旧版本的方式生成代码。
!-my batis-plus begin-dependency groupIdcom.baomidou/groupId artifactId my batis-plus-boot-starter/artifactId版本3 . 4 . 1/版本/依赖关系依赖关系groupIdcom.baomidou/groupId artifactId my batis-plus-generator/artifactId版本3 . 4 . 1/版本/依赖关系依赖关系groupId MySQL/groupId artifact id MySQL-connector-Java/artifact id版本5 . 1 . 44/版本/依赖关系!-我的巴蒂斯加默认是伏特计引擎-依赖关系groupIdorg.apache.velocity/groupId工件id速度-引擎-核心/工件id 2.0版/版本/依赖关系!-我的巴蒂斯-加结束-
3.自动生成代码
公共静态void main(String[] args) { //构建一个代码生成器对象自动生成器mpg=新自动生成器();//配置执行策略//1.全局配置全局配置GC=新的全局配置();//当前项目路径string proPath=system。getproperty(用户。dir’);//设置代码生成路径GC。setoutputdir(proPath /src/main/Java );//生成的类的注释中作者信息GC。设置作者(库里);//生成后是否打开文件夹GC。setopen(假);//是否覆盖GC。setfile覆盖(true);//生成服务类的后缀GC。设置服务名(" % s服务");//主键生成策略和数据库编号生成策略一致gc.setIdType(IdType .AUTO);//设置日期类型gc.setDateType(日期类型. ONLY _ DATE);//是否生成霸气GC。setswagger 2(假);//生成实体类的后缀GC。setentityname(“% sEntity”);mpg.setGloba
lConfig(gc); // 2.设置数据源 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://127.0.0.1:3306/test_db"); dsc.setDriverName("com.mysql.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("123456"); dsc.setDbType(DbType.MYSQL); mpg.setDataSource(dsc); // 3.配置生成包的路径 PackageConfig pc = new PackageConfig(); // 设置模块存放位置 pc.setParent("com."); // 设置该模块包的路径 pc.setModuleName("dao"); pc.setEntity("entity"); pc.setMapper("mapper"); pc.setService("service"); pc.setController("controller"); mpg.setPackageInfo(pc); // 4.策略配置 StrategyConfig strategy=new StrategyConfig(); // 设置要映射的表名 不配置默认处理全部表 // strategy.setInclude("user"); // 表名中下划线转驼峰命名 strategy.setNaming(NamingStrategy.underline_to_camel); // 表中字段如果有下划线,转驼峰命名 strategy.setColumnNaming(NamingStrategy.underline_to_camel); // strategy.setEntityLombokModel(true);//自动生成Lombok // strategy.setRestControllerStyle(true);//开启 RestFul 风格 // strategy.setControllerMappingHyphenStyle(true); // 对表中的字段 设置逻辑删除 生成的dao层代码会添加@TableLogic strategy.setLogicDeleteFieldName("delete_flag"); // 5.自动填充 (表中如果有创建时间、修改时间话,可以使用自动填充) TableFill createTime = new TableFill("created_date", FieldFill.INSERT); TableFill updateTime = new TableFill("modified_date", FieldFill.INSERT_UPDATE); ArrayList<TableFill> tableFills = new ArrayList<>(); tableFills.add(createTime); tableFills.add(updateTime); strategy.setTableFillList(tableFills); // 乐观锁配置 // strategy.setVersionFieldName("version"); mpg.setStrategy(strategy); // 6.配置实体类模板 TemplateConfig templateConfig = new TemplateConfig(); // 如果setXxxxx(null) 不会生成Xxxx实体类相关代码 // 因此如果只生成dao层代码 // 可以在这里控制 templateConfig.setController(null); templateConfig.setMapper(null); templateConfig.setService(null); templateConfig.setServiceImpl(null); templateConfig.setXml(null); mpg.setTemplate(templateConfig); // 7.执行代码生成操作 mpg.execute(); }
4.修改*Mapper.xml文件的生成位置
4.1 默认*Mapper.xml文件生成位置
// 3.配置生成包的路径 PackageConfig pc = new PackageConfig(); // 设置模块存放位置 pc.setParent("com."); // 设置该模块包的路径 pc.setModuleName("dao"); pc.setEntity("entity"); pc.setMapper("mapper"); pc.setService("service"); pc.setController("controller"); mpg.setPackageInfo(pc);
以上面代码为例,*Mapper.xml
文件位置是mapper/xml/*Mapper.xml
4.2 修改*Mapper.xml文件生成位置
step1:在模板中控制不生成xml文件 防止重复生成
templateConfig.setXml(null);
step2:在第三步中mpg.execute();
执行前增加以下代码
// 自定义配置 InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { // to do nothing } }; // 如果模板引擎是 freemarker // String templatePath = "/templates/mapper.xml.ftl"; // 如果模板引擎是 velocity String templatePath = "/templates/mapper.xml.vm"; // 自定义输出配置 List<FileOutConfig> focList = new ArrayList<>(); // 自定义配置会被优先输出 // 这里自定义配置的是*Mapper.xml文件 // 所以templatePath = "/templates/mapper.xml.vm"; // 如果你想自定义配置其它 修改templatePath即可 focList.add(new FileOutConfig(templatePath) { @Override public String outputFile(TableInfo tableInfo) { // 自定义输出文件名 如果你 Entity 设置了前后缀 String entityName = tableInfo.getEntityName(); int length = entityName.length(); entityName = entityName.substring(0, length - 6); return proPath + "/src/main/resources/mapper/" + entityName + "Mapper" + StringPool.DOT_XML; } }); cfg.setFileOutConfigList(focList); mpg.setCfg(cfg);
到此这篇关于mybatis-plus使用generator实现逆向工程的文章就介绍到这了,更多相关mybatis-plus generator 逆向工程内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。