mybatis-plus代码生成器配置的示例分析
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要介绍了mybatis-plus代码生成器配置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最近在玩项目,发现自己
千家信息网最后更新 2024年11月11日mybatis-plus代码生成器配置的示例分析
这篇文章主要介绍了mybatis-plus代码生成器配置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
最近在玩项目,发现自己写严重浪费时间~于是想到了代码生成器,之前用过一次的mybatis-plus,再重新实现了一下
确保修改好对应的配置即可
依赖:
com.baomidou mybatis-plus-boot-starter 2.2.0 mysql mysql-connector-java 5.1.47 freemarker freemarker 2.3.8
代码:
package cn.zytao.taosir.generator; 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.converts.MySqlTypeConvert;import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;import com.baomidou.mybatisplus.generator.config.rules.DbType;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; /** ** mybaits-plus代码生成器 *
*/public class Generator { /** ** MySQL 生成演示 *
*/ public static void main(String[] args) { AutoGenerator mpg = new AutoGenerator(); // 选择 freemarker 引擎,默认 Veloctiy mpg.setTemplateEngine(new FreemarkerTemplateEngine()); // 全局配置 GlobalConfig gc = new GlobalConfig(); gc.setAuthor("taosir"); gc.setOutputDir("F://"); gc.setFileOverride(false);// 是否覆盖同名文件,默认是false gc.setActiveRecord(true);// 不需要ActiveRecord特性的请改为false gc.setEnableCache(false);// XML 二级缓存 gc.setBaseResultMap(false);// XML ResultMap gc.setBaseColumnList(false);// XML columList /* 自定义文件命名,注意 %s 会自动填充表实体属性! */ gc.setMapperName("%sMapper"); // gc.setXmlName("%sDao"); gc.setServiceName("%sService"); gc.setServiceImplName("%sServiceImpl"); //gc.setControllerName("%sController"); mpg.setGlobalConfig(gc); // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL); dsc.setTypeConvert(new MySqlTypeConvert() { // 自定义数据库表字段类型转换【可选】 @Override public DbColumnType processTypeConvert(String fieldType) { System.out.println("转换类型:" + fieldType); // 注意!!processTypeConvert 存在默认类型转换,如果不是你要的效果请自定义返回、非如下直接返回。 return super.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); // 策略配置 StrategyConfig strategy = new StrategyConfig(); //strategy.setCapitalMode(true);// 全局大写命名 ORACLE 注意 //strategy.setTablePrefix(new String[] { "user_" });// 表前缀 strategy.setNaming(NamingStrategy.nochange);// 表名生成策略 strategy.setInclude(new String[] { "user"}); // 需要生成的表 // strategy.setExclude(new String[]{"test"}); // 排除生成的表 // 自定义实体父类 // strategy.setSuperEntityClass("com.baomidou.demo.TestEntity"); // 自定义实体,公共字段 // strategy.setSuperEntityColumns(new String[] { "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) // public static final String ID = "id"; // strategy.setEntityColumnConstant(true); // 【实体】是否为构建者模型(默认 false) // public User setName(String name) {this.name = name; return this;} // strategy.setEntityBuilderModel(true); mpg.setStrategy(strategy); // 包配置 PackageConfig pc = new PackageConfig(); pc.setParent("cn.zytao.taosir");// pc.setModuleName("test"); mpg.setPackageInfo(pc); // 注入自定义配置,可以在 VM 中使用 cfg.abc 【可无】// InjectionConfig cfg = new InjectionConfig() {// @Override// public void initMap() {// Mapmap = new HashMap ();// map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");// this.setMap(map);// }// };//// // 自定义 xxList.jsp 生成// List focList = new ArrayList<>();// focList.add(new FileOutConfig("/template/list.jsp.vm") {// @Override// public String outputFile(TableInfo tableInfo) {// // 自定义输入文件名称// return "D://my_" + tableInfo.getEntityName() + ".jsp";// }// });// cfg.setFileOutConfigList(focList);// mpg.setCfg(cfg);//// // 调整 xml 生成目录演示// focList.add(new FileOutConfig("/templates/mapper.xml.vm") {// @Override// public String outputFile(TableInfo tableInfo) {// return "/develop/code/xml/" + tableInfo.getEntityName() + ".xml";// }// });// cfg.setFileOutConfigList(focList);// mpg.setCfg(cfg);//// // 关闭默认 xml 生成,调整生成 至 根目录// TemplateConfig tc = new TemplateConfig();// tc.setXml(null);// mpg.setTemplate(tc); // 自定义模板配置,可以 copy 源码 mybatis-plus/src/main/resources/templates 下面内容修改, // 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称 // TemplateConfig tc = new TemplateConfig(); // tc.setController("..."); // tc.setEntity("..."); // tc.setMapper("..."); // tc.setXml("..."); // tc.setService("..."); // tc.setServiceImpl("..."); // 如上任何一个模块如果设置 空 OR Null 将不生成该模块。 // mpg.setTemplate(tc); // 执行生成 mpg.execute(); // 打印注入设置【可无】// System.err.println(mpg.getCfg().getMap().get("abc")); }}
建个工程丢下去,修改相关配置,run完事~~~~
感谢你能够认真阅读完这篇文章,希望小编分享的"mybatis-plus代码生成器配置的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
生成
配置
代码
实体
生成器
篇文章
名称
字段
文件
类型
示例
分析
全局
数据
模块
模板
目录
策略
项目
演示
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全与执法类的视力要求
dayz搭建服务器教程
软件平台优势及网络安全
三维重建点云数据库
数据库技术老师推荐信
用3dmax做数据库
吴金德网络技术
教育局网络安全评估
各主流数据库性能指标
在关系数据库中参照表和被参照表
亚马逊aws云服务器介绍
win8小黑屏数据库导入
2017网络安全法知识竞赛试题答案
马化腾软件开发能力
重庆安卓软件开发价位
华为软件开发c语言
web应用数据库开发
服务器管理口如何安装操作系统
硬件服务器书籍
服务器js文件放到阿里云
易语言加数据库
数据库如何确定输入参数
服务器环境部署包
长沙中信软件开发公司
网站隐私政策网络安全法
凌渡天的数据库
计算机软件开发就业前景6
重庆安卓软件开发价位
在社会经济领域网络安全主要
服务器租凭管理系统