Mybatis-Plus 3.0代码生成器

  1 package com.kyplatform.generator;
  2
  3 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
  4 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  5 import com.baomidou.mybatisplus.generator.AutoGenerator;
  6 import com.baomidou.mybatisplus.generator.config.*;
  7 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
  8
  9 import java.util.Scanner;
 10
 11 /**
 12  * mybatis代码生成器
 13  */
 14 public class CodeGenerator {
 15     /**
 16      * <p>
 17      * 读取控制台内容
 18      * </p>
 19      */
 20     public static String scanner(String tip) {
 21         Scanner scanner = new Scanner(System.in);
 22         StringBuilder help = new StringBuilder();
 23         help.append("请输入" + tip + ":");
 24         System.out.println(help.toString());
 25         if (scanner.hasNext()) {
 26             String ipt = scanner.next();
 27             if (StringUtils.isNotEmpty(ipt)) {
 28                 return ipt;
 29             }
 30         }
 31         throw new MybatisPlusException("请输入正确的" + tip + "!");
 32     }
 33
 34     public static void main(String[] args) {
 35         // 代码生成器
 36         AutoGenerator mpg = new AutoGenerator();
 37
 38         // 全局配置
 39         GlobalConfig gc = new GlobalConfig();
 40         String projectPath = System.getProperty("user.dir");
 41         gc.setOutputDir(projectPath + "/src/main/java");//生成文件的输出目录
 42         gc.setAuthor("zhicaili");//开发人员
 43         gc.setOpen(true);//是否打开输出目录
 44         gc.setServiceName("%sService");//service 命名方式
 45         gc.setServiceImplName("%sServiceImpl");//service impl 命名方式
 46         // 自定义文件命名,注意 %s 会自动填充表实体属性!
 47         gc.setMapperName("%sMapper");
 48         gc.setXmlName("%sMapper");
 49         gc.setFileOverride(true);
 50         gc.setActiveRecord(true);
 51         gc.setEnableCache(false);// XML 二级缓存
 52         gc.setBaseResultMap(true);// XML ResultMap
 53         gc.setBaseColumnList(false);// XML columList
 54         mpg.setGlobalConfig(gc);
 55
 56         // 数据源配置
 57         DataSourceConfig dsc = new DataSourceConfig();
 58         dsc.setUrl("jdbc:mysql://127.0.0.1:3306/xxxxx?useUnicode=true&useSSL=false&characterEncoding=utf8");
 59         // dsc.setSchemaName("public"); 数据库 schema name
 60         dsc.setDriverName("com.mysql.jdbc.Driver");
 61         dsc.setUsername("root");
 62         dsc.setPassword("******");
 63         mpg.setDataSource(dsc);
 64
 65         // 包配置
 66         PackageConfig pc = new PackageConfig();
 67         //pc.setModuleName(scanner("模块名"));//父包模块名
 68         pc.setParent("com.kyplatform.admin");//父包名。// 自定义包路径  如果为空,将下面子包名必须写全部, 否则就只需写子包名
 69         pc.setEntity("pojo");
 70         pc.setService("service");
 71         pc.setServiceImpl("service.impl");
 72         pc.setController("controller");//设置控制器包名
 73         mpg.setPackageInfo(pc);
 74
 75         // 自定义配置
 76 /*        InjectionConfig cfg = new InjectionConfig() {
 77             @Override
 78             public void initMap() {
 79                 // to do nothing
 80             }
 81         };
 82         List<FileOutConfig> focList = new ArrayList<>();
 83         focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
 84             @Override
 85             public String outputFile(TableInfo tableInfo) {
 86                 // 自定义输入文件名称
 87                 return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
 88                         + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
 89             }
 90         });*/
 91  /*       cfg.setFileOutConfigList(focList);
 92         mpg.setCfg(cfg);*/
 93         mpg.setTemplate(new TemplateConfig().setXml(null));
 94
 95         // 策略配置
 96         StrategyConfig strategy = new StrategyConfig();
 97         strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
 98         strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略, 未指定按照 naming 执行
 99       //  strategy.setSuperEntityClass("com.baomidou.ant.common.BaseEntity");//自定义继承的Entity类全称,带包名
100         strategy.setEntityLombokModel(true);//【实体】是否为lombok模型(默认 false)
101         strategy.setRestControllerStyle(true);//生成 @RestController 控制器
102         //strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");//自定义继承的Controller类全称,带包名
103         strategy.setInclude("tb_user","tb_organization","tb_person","tb_signin","tb_sys_config","tb_sys_log");//需要包含的表名,允许正则表达式
104         //strategy.setSuperEntityColumns("id");//自定义基础的Entity类,公共字段
105         strategy.setControllerMappingHyphenStyle(true);//驼峰转连字符
106         strategy.setTablePrefix("tb_");//表前缀
107         mpg.setStrategy(strategy);
108         //mpg.setTemplateEngine(new FreemarkerTemplateEngine());
109         mpg.execute();
110     }
111
112
113 }

原文地址:https://www.cnblogs.com/limn/p/9923170.html

时间: 2024-10-14 00:55:35

Mybatis-Plus 3.0代码生成器的相关文章

mybatis链接mysql8.0以上版本数据库的逆向工程配置

mybatis链接mysql8.0以上版本数据库的逆向工程配置两种xml文件配置方案: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dt

java微信接口开发java SpringMVC mybatis 后台框架 集成代码生成器开发利器

获取[下载地址]   QQ: 313596790   [免费支持更新]支持三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]A 代码生成器(开发利器);      增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid

为什么mysql数据库对应的字段有数据但是使用mybatis取出是0 或null

因为数据库中对应的字段使用了下划线 如 spec_name  在entity 中使用的是specName , 将entity中改为 spec_name 后就能取出数据.数据库中的Upper 字段对应entity 中的 upper,也是 能取出数据的. 总结: mybatis 可以将数据库字段与entity 的属性间大小写不一致问题解决,但是数据库字段使用了下划线后,mybatis 不能讲字段识别为属性

基于mybatis generator 的逆向代码生成器

话不多少,先上效果图(如下):   用法:1:选择数据库驱动: 2:修改数据库地址 mysql地址如下:jdbc:mysql://localhost:3306/test ,修改为你的ip,端口和数据库名: 3:输入用户名如 root,密码如 root:     4:点击测试链接,成功如下,失败会有相应提示信息:             5:填写你要生成代码的数据库对应表,如图:       6:选择你要生成的代码路径                  7:点击生成代码按钮           

MyBatis持久层框架使用总结

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis . 2013年11月迁移到Github,MyBatis的Github地址:https://github.com/mybatis/mybatis-3. iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架.iBATIS提供的持久层框架包括SQL Maps和Dat

Hello Mybatis 02 mybatis generator

接着上一篇文章通过Mybatis完成了一个User的CRUD的功能之后,这篇开始还需要建立一个Blog类,这样就可以模拟一个简单的微博平台的数据库了. 数据库准备 首先我们,还是需要在数据库中新建一个表blog 1 CREATE TABLE `blog`.`blog` ( 2 `b_id` INT NOT NULL, 3 `b_title` VARCHAR(45) NULL, 4 `b_content` VARCHAR(255) NULL, 5 `user_id` INT NULL, 6 PRI

MyBatis持久层框架使用总结 转载

MyBatis持久层框架使用总结 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis . 2013年11月迁移到Github,MyBatis的Github地址:https://github.com/mybatis/mybatis-3. iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架.iBATIS提供的持久

回顾一下MyBatis逆向工程——自动生成代码

前言 最近做的项目(SSM+Shiro)的数据库表已经创建完成,一共有15张表,如果我们一个个去写pojo/bean的代码以及各种sql语句的话未免太过麻烦而且很容易出错,这个时候我们就需要MyBatis逆向工程去为我们生成这些基本的东西.先来简单的了解一下什么是逆向工程 一 什么是逆向工程 官网解释浓缩版:MyBatis逆向工程需要用到的就是MyBatis官方提供的MyBatis Generator(MBG).MBG是MyBatis和iBATIS的代码生成器,它将为所有版本的MyBatis以及

MyBatis 总结

[总结内容来自 尚硅谷 资料] 发博备查. 1. mybatis 快速入门:  1). 添加 jar 包   mybatis-3.1.1.jar   mysql-connector-java-5.1.7-bin.jar 2). 建库建表 create database mybatis;    use mybatis;    CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);    IN