SpringBoot之【mybatisplus】代码生成器
程序员文章站
2022-06-11 16:54:38
1、概述、 AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。 2、使用教程 2.1 相关依赖 MyB ......
1、概述、
autogenerator 是 mybatis-plus 的代码生成器,通过 autogenerator 可以快速生成 entity、mapper、mapper xml、service、controller 等各个模块的代码,极大的提升了开发效率。
2、使用教程
2.1 相关依赖
mybatis-plus 支持 velocity(默认)、freemarker、beetl,,可以采用自定义模板引擎。
<!--代码生成器 依赖--> <dependency> <groupid>com.baomidou</groupid> <artifactid>mybatis-plus-generator</artifactid> <version>3.3.0</version> </dependency> <!--模板引擎 依赖--> <dependency> <groupid>org.freemarker</groupid> <artifactid>freemarker</artifactid> <version>2.3.28</version> </dependency>
2.2 编写配置
2.2.1 下载模板文件
模板地址:https://github.com/baomidou/mybatis-plus/tree/3.0/mybatis-plus-generator/src/main/resources/templates
下载方法:一个下载github文件夹的网站,作者来自孟加拉国
解压文件到resource目录下
2.2.2 代码生成类编写
/** * <p> * 读取控制台内容 * </p> */ public static string scanner(string tip) { scanner scanner = new scanner(system.in); stringbuilder help = new stringbuilder(); help.append("请输入" + tip + ":"); system.out.println(help.tostring()); if (scanner.hasnext()) { string ipt = scanner.next(); if (stringutils.isnotempty(ipt)) { return ipt; } } throw new mybatisplusexception("请输入正确的" + tip + "!"); } public static void main(string[] args) { // 代码生成器 autogenerator mpg = new autogenerator(); // 全局配置 globalconfig gc = new globalconfig(); final string projectpath = system.getproperty("user.dir"); gc.setoutputdir(projectpath + "/mybatisplusdemo/src/main/java"); gc.setauthor("jobob"); gc.setopen(false); gc.setidtype(idtype.auto); // gc.setswagger2(true); 实体属性 swagger2 注解 gc.setfileoverride(true); //设置是否覆盖原来的代码 最好设置为false 或者 另外配置路径 mpg.setglobalconfig(gc); // 数据源配置 datasourceconfig dsc = new datasourceconfig(); dsc.seturl("jdbc:mysql://localhost:3306/test?useunicode=true&usessl=false&characterencoding=utf8&servertimezone=utc"); // dsc.setschemaname("public"); dsc.setdrivername("com.mysql.jdbc.driver"); dsc.setusername("root"); dsc.setpassword("root"); mpg.setdatasource(dsc); // 包配置 final packageconfig pc = new packageconfig(); //pc.setmodulename(scanner("模块名")); pc.setparent("com.example.mybatisplusdemo"); mpg.setpackageinfo(pc); // 自定义配置 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<>(); // 自定义配置会被优先输出 foclist.add(new fileoutconfig(templatepath) { @override public string outputfile(tableinfo tableinfo) { // 自定义输出文件名 , 如果你 entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!! return projectpath + "/mybatisplusdemo/src/main/resources/mapper/" + tableinfo.getentityname() + "mapper" + stringpool.dot_xml; } }); /* cfg.setfilecreate(new ifilecreate() { @override public boolean iscreate(configbuilder configbuilder, filetype filetype, string filepath) { // 判断自定义文件夹是否需要创建 checkdir("调用默认方法创建的目录"); return false; } }); */ cfg.setfileoutconfiglist(foclist); mpg.setcfg(cfg); // 配置模板 //templateconfig templateconfig = new templateconfig(); // 配置自定义输出模板 //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别 // templateconfig.setentity("templates/entity2.java"); // templateconfig.setservice(); // templateconfig.setcontroller(); //templateconfig.setxml("templates/mapper.java"); //mpg.settemplate(templateconfig); // 策略配置 strategyconfig strategy = new strategyconfig(); // 表名生成策略(下划线转驼峰命名) strategy.setnaming(namingstrategy.underline_to_camel); // 列名生成策略(下划线转驼峰命名) strategy.setcolumnnaming(namingstrategy.underline_to_camel); // 自定义实体父类 //strategy.setsuperentityclass("com.baomidou.ant.common.baseentity"); // 是否启动lombok配置 strategy.setentitylombokmodel(true); // 是否启动rest风格配置 strategy.setrestcontrollerstyle(true); strategy.setinclude(scanner("表名,多个英文逗号分割").split(",")); // 写于父类中的公共字段 父类没有id就注释掉,否则实体类不生成 id属性 //strategy.setsuperentitycolumns("id"); strategy.setcontrollermappinghyphenstyle(true); strategy.settableprefix(pc.getmodulename() + "_"); mpg.setstrategy(strategy); mpg.settemplateengine(new freemarkertemplateengine()); mpg.execute(); }
2.2.3 代码生成类启动
目录结构
————————————————
本人免费整理了java高级资料,涵盖了java、redis、mongodb、mysql、zookeeper、spring cloud、dubbo高并发分布式等教程,一共30g,需要自己领取。
传送门:https://mp.weixin.qq.com/s/osb-bol6w-zltstttkqmpq
上一篇: 博客园搜索爬取
下一篇: java接入微信JS-SDK
推荐阅读
-
SpringBoot之【mybatisplus】代码生成器
-
springcloud Springboot vue.js Activiti6 前后分离 跨域 工作流 集成代码生成器 shiro权限
-
Springboot Activiti6 工作流 集成代码生成器 shiro 权限 vue.js html 跨域 前后分离
-
.NET Core实战项目之CMS 第十一章 开发篇-数据库生成及实体代码生成器开发
-
springboot mybatis 后台框架平台 shiro 权限 集成代码生成器
-
springboot 后台框架平台 mybatis 集成代码生成器 shiro 权限 websocket
-
springboot mybatis 项目框架源码 shiro 集成代码生成器 ehcache缓存
-
Springboot vue.js html 跨域 前后分离 Activiti6 工作流 集成代码生成器 shiro 权限
-
spring cloud springboot 框架源码 activiti工作流 前后分离 集成代码生成器
-
浅谈springboot中tk.mapper代码生成器的用法说明