mybatis plus代码生成器配置过程解析
这篇文章主要介绍了mybatisplus代码生成器配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
最近在玩项目,发现自己写严重浪费时间~于是想到了代码生成器,之前用过一次的mybatis-plus,再重新实现了一下
确保修改好对应的配置即可
依赖:
com.baomidou mybatis-plus-boot-starter 2.2.0 mysql mysql-connector-java 5.1.47 freemarker freemarker 2.3.8
代码:
packagecn.zytao.taosir.generator; importcom.baomidou.mybatisplus.generator.AutoGenerator; importcom.baomidou.mybatisplus.generator.config.DataSourceConfig; importcom.baomidou.mybatisplus.generator.config.GlobalConfig; importcom.baomidou.mybatisplus.generator.config.PackageConfig; importcom.baomidou.mybatisplus.generator.config.StrategyConfig; importcom.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert; importcom.baomidou.mybatisplus.generator.config.rules.DbColumnType; importcom.baomidou.mybatisplus.generator.config.rules.DbType; importcom.baomidou.mybatisplus.generator.config.rules.NamingStrategy; importcom.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; /** **mybaits-plus代码生成器 *
*/ publicclassGenerator{ /** **MySQL生成演示 *
*/ publicstaticvoidmain(String[]args){ AutoGeneratormpg=newAutoGenerator(); //选择freemarker引擎,默认Veloctiy mpg.setTemplateEngine(newFreemarkerTemplateEngine()); //全局配置 GlobalConfiggc=newGlobalConfig(); gc.setAuthor("taosir"); gc.setOutputDir("F://"); gc.setFileOverride(false);//是否覆盖同名文件,默认是false gc.setActiveRecord(true);//不需要ActiveRecord特性的请改为false gc.setEnableCache(false);//XML二级缓存 gc.setBaseResultMap(false);//XMLResultMap gc.setBaseColumnList(false);//XMLcolumList /*自定义文件命名,注意%s会自动填充表实体属性!*/ gc.setMapperName("%sMapper"); //gc.setXmlName("%sDao"); gc.setServiceName("%sService"); gc.setServiceImplName("%sServiceImpl"); //gc.setControllerName("%sController"); mpg.setGlobalConfig(gc); //数据源配置 DataSourceConfigdsc=newDataSourceConfig(); dsc.setDbType(DbType.MYSQL); dsc.setTypeConvert(newMySqlTypeConvert(){ //自定义数据库表字段类型转换【可选】 @Override publicDbColumnTypeprocessTypeConvert(StringfieldType){ System.out.println("转换类型:"+fieldType); //注意!!processTypeConvert存在默认类型转换,如果不是你要的效果请自定义返回、非如下直接返回。 returnsuper.processTypeConvert(fieldType); } }); dsc.setDriverName("com.mysql.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("root"); dsc.setUrl("jdbc:mysql://localhost:3306/taosir?useUnicode=true&characterEncoding=utf8"); mpg.setDataSource(dsc); //策略配置 StrategyConfigstrategy=newStrategyConfig(); //strategy.setCapitalMode(true);//全局大写命名ORACLE注意 //strategy.setTablePrefix(newString[]{"user_"});//表前缀 strategy.setNaming(NamingStrategy.nochange);//表名生成策略 strategy.setInclude(newString[]{"user"});//需要生成的表 //strategy.setExclude(newString[]{"test"});//排除生成的表 //自定义实体父类 //strategy.setSuperEntityClass("com.baomidou.demo.TestEntity"); //自定义实体,公共字段 //strategy.setSuperEntityColumns(newString[]{"id","age"}); //自定义mapper父类 //strategy.setSuperMapperClass("com.baomidou.demo.TestMapper"); //自定义service父类 //strategy.setSuperServiceClass("com.baomidou.demo.TestService"); //自定义service实现类父类 //strategy.setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl"); //自定义controller父类 //strategy.setSuperControllerClass("com.baomidou.demo.TestController"); //【实体】是否生成字段常量(默认false) //publicstaticfinalStringID="id"; //strategy.setEntityColumnConstant(true); //【实体】是否为构建者模型(默认false) //publicUsersetName(Stringname){this.name=name;returnthis;} //strategy.setEntityBuilderModel(true); mpg.setStrategy(strategy); //包配置 PackageConfigpc=newPackageConfig(); pc.setParent("cn.zytao.taosir"); //pc.setModuleName("test"); mpg.setPackageInfo(pc); //注入自定义配置,可以在VM中使用cfg.abc【可无】 //InjectionConfigcfg=newInjectionConfig(){ //@Override //publicvoidinitMap(){ //Mapmap=newHashMap (); //map.put("abc",this.getConfig().getGlobalConfig().getAuthor()+"-mp"); //this.setMap(map); //} //}; // ////自定义xxList.jsp生成 //List focList=newArrayList<>(); //focList.add(newFileOutConfig("/template/list.jsp.vm"){ //@Override //publicStringoutputFile(TableInfotableInfo){ ////自定义输入文件名称 //return"D://my_"+tableInfo.getEntityName()+".jsp"; //} //}); //cfg.setFileOutConfigList(focList); //mpg.setCfg(cfg); // ////调整xml生成目录演示 //focList.add(newFileOutConfig("/templates/mapper.xml.vm"){ //@Override //publicStringoutputFile(TableInfotableInfo){ //return"/develop/code/xml/"+tableInfo.getEntityName()+".xml"; //} //}); //cfg.setFileOutConfigList(focList); //mpg.setCfg(cfg); // ////关闭默认xml生成,调整生成至根目录 //TemplateConfigtc=newTemplateConfig(); //tc.setXml(null); //mpg.setTemplate(tc); //自定义模板配置,可以copy源码mybatis-plus/src/main/resources/templates下面内容修改, //放置自己项目的src/main/resources/templates目录下,默认名称一下可以不配置,也可以自定义模板名称 //TemplateConfigtc=newTemplateConfig(); //tc.setController("..."); //tc.setEntity("..."); //tc.setMapper("..."); //tc.setXml("..."); //tc.setService("..."); //tc.setServiceImpl("..."); //如上任何一个模块如果设置空ORNull将不生成该模块。 //mpg.setTemplate(tc); //执行生成 mpg.execute(); //打印注入设置【可无】 //System.err.println(mpg.getCfg().getMap().get("abc")); } }
建个工程丢下去,修改相关配置,run完事~~~~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。