GVKun编程网logo

Mybatis-plus的代码生成器的配置(mybatisplus代码生成工具)

13

本文的目的是介绍Mybatis-plus的代码生成器的配置的详细情况,特别关注mybatisplus代码生成工具的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解Myb

本文的目的是介绍Mybatis-plus的代码生成器的配置的详细情况,特别关注mybatisplus代码生成工具的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解Mybatis-plus的代码生成器的配置的机会,同时也不会遗漏关于Mybatis Plus 代码生成器、mybatis plus 基础代码生成器、mybatis plus 的代码生成器、mybatis plus代码生成器的知识。

本文目录一览:

Mybatis-plus的代码生成器的配置(mybatisplus代码生成工具)

Mybatis-plus的代码生成器的配置(mybatisplus代码生成工具)

Mp的代码生成器代码生成文件

public class getCode {
@Test
 public void main1() {
 // 1、创建代码生成器
 AutoGenerator mpg = new AutoGenerator();
 // 2、全局配置
 GlobalConfig gc = new GlobalConfig();
 String projectPath = System.getProperty("user.dir");
 System.out.println(projectPath);
 gc.setoutputDir(projectPath + "/src/main/java");
 gc.setAuthor("atguigu");
 gc.setopen(false); //生成后是否打开资源管理器
 gc.setFileOverride(false); //重新生成时文件是否覆盖
 /*
 * mp生成service层代码,默认接口名称第一个字母有 I
 * UcenterService
 * */
 gc.setServiceName("%sService"); //去掉Service接口的首字母I
 gc.setIdType(IdType.ID_WORKER); //主键策略
 gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
 gc.setSwagger2(true);//开启Swagger2模式

 mpg.setGlobalConfig(gc);

// 3、数据源配置
 DataSourceConfig dsc = new DataSourceConfig();
 dsc.setUrl("jdbc:MysqL://localhost:3306/guli?serverTimezone=GMT%2B8");
 dsc.setDriverName("com.MysqL.cj.jdbc.Driver");
 dsc.setUsername("root");
 dsc.setPassword("root");
 dsc.setDbType(DbType.MysqL);
 mpg.setDataSource(dsc);

 // 4、包配置
 PackageConfig pc = new PackageConfig();
 pc.setModuleName("serviceedu"); //模块名
 pc.setParent("com.atguigu");
 pc.setController("controller");
 pc.setEntity("entity");
 pc.setService("service");
 pc.setMapper("mapper");
 mpg.setPackageInfo(pc);

 // 5、策略配置
 StrategyConfig strategy = new StrategyConfig();
 strategy.setInclude("edu_teacher");
 strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的
命名策略
 strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀

 strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段
映射到实体的命名策略
 strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain =
true) setter链式操作

 strategy.setRestControllerStyle(true); //restful api风格控制器
 strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符

 mpg.setStrategy(strategy);

 // 6、执行
 mpg.execute();
 }
 }

配置依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>service</artifactId>
        <groupId>com.atwjw</groupId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath   />
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>service_edu</artifactId>
    <dependencies>

        <dependency>
            <groupId>com.atwjw</groupId>
            <artifactId>server_base</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.0.5</version>
            <scope>test</scope>
        </dependency>
        <!-- 操作EasyExecl的依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.1.1</version>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

Mybatis Plus 代码生成器

Mybatis Plus 代码生成器

最近在学习Mybatis Plus,刚刚写好一个代码生成器的工具类,拿出来给大家分享一下,相比Mybatis要方便很多,不需要配置文件

package com.utils;

import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Scanner;

// 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中
// MyBatis Plus(MP)
public class MPUtils {

/**
* <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();
//MP提供的工具类,做非空判断
if (StringUtils.isNotEmpty(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}

public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();

// 全局配置
GlobalConfig gc = new GlobalConfig();
// 获取项目的绝对路径
String projectPath = System.getProperty("user.dir");
// 指定文件生成路径
gc.setOutputDir(projectPath + "/src/main/java");
// 作者(没什么用。。。)
gc.setAuthor("jobob");
gc.setOpen(false);
mpg.setGlobalConfig(gc);

// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
// 基本连接字符串
dsc.setUrl("jdbc:mysql:///testdb");
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("ok");
mpg.setDataSource(dsc);

// 包配置
PackageConfig pc = new PackageConfig();
// 要生成的包名(隶属哪个模块)
pc.setModuleName(scanner("模块名"));
// 父级包名
pc.setParent("com");
mpg.setPackageInfo(pc);

// 设置生成模板(默认就是这个,可以不写)
mpg.setTemplate(new TemplateConfig());

// 策略配置
StrategyConfig strategy = new StrategyConfig();
// 表名生成策略
strategy.setNaming(NamingStrategy.nochange);
// 字段名生成策略
strategy.setColumnNaming(NamingStrategy.nochange);
// 是否使用Lombok优化代码
strategy.setEntityLombokModel(true);
// controller类是否直接返回json
strategy.setRestControllerStyle(true);
// 要生成的表名(控制台输入)
strategy.setInclude(scanner("表名"));
strategy.setSuperEntityColumns("id");
strategy.setControllerMappingHyphenStyle(true);
mpg.setStrategy(strategy);
// 切换引擎
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
// 执行代码生成器
mpg.execute();
}

}


mybatis plus 基础代码生成器

mybatis plus 基础代码生成器

1, 复制代码 2 导入依赖 3运行main方法 ok
public class CodeGenerator {

    //数据库路径
    private static String url = "jdbc:MysqL://192.176.17.7:3306/plus_db?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8";
    private static String username = "root";
    private static String password = "root";
    private static String packagePath = "com.qyy.plus"; //包路径
    private static String author = "qyy"; //作者
    private static String prefix = ""; //前缀
    private static String projectPath = "D:\\mybatisPlus\\workspace\\qyy_db\\plus"; //项目的路径,在下面自动拼接了 /src/main/java
    private static String[] tables = {"tool_user"};//生成的表


    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        //String projectPath = "D:\\ideaWork\\iot-coldchain";
        gc.setoutputDir(projectPath + "/src/main/java");
        gc.setAuthor(author);
        gc.setopen(false);// 生成后是否打开资源管理器
        gc.setFileOverride(true);//文件是否覆盖
        gc.setServiceName("%sService");//去掉Service接口的首字母I
        gc.setIdType(IdType.AUTO);// 主键策略
        gc.setDateType(DateType.ONLY_DATE);// 日期类型
        gc.setSwagger2(false); // 实体属性 Swagger2 注解
        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl(url);
        // dsc.setSchemaName("public");
        dsc.setDriverName("com.MysqL.cj.jdbc.Driver");
        dsc.setUsername(username);
        dsc.setPassword(password);
        dsc.setDbType(DbType.MysqL);
        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        // 主模块,会自动多创建一层包
        //pc.setModuleName("user");
        pc.setParent(packagePath);
        pc.setController("controller");
        pc.setService("service");
        pc.setEntity("entity");
        pc.setMapper("mapper");
        mpg.setPackageInfo(pc);


        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setInclude(tables);
        strategy.setNaming(NamingStrategy.underline_to_camel);//表和实体类的命名规则
        strategy.setTablePrefix(prefix);
        //strategy.setTablePrefix(pc.getModuleName()+"_");
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//字段映射规则
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true); //restfulapi风格
        strategy.setControllerMappingHyphenStyle(true);//url中驼峰转连字符
        mpg.setStrategy(strategy);


        mpg.execute();
    }

2 依赖包

    <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.2</version>
    </dependency>
	<dependency>
            <groupId>org.apache.veLocity</groupId>
            <artifactId>veLocity-engine-core</artifactId>
            <version>2.0</version>
    </dependency>

mybatis plus 的代码生成器

mybatis plus 的代码生成器

  1 package com.raise3d.MyGenerator;
  2 
  3 import com.baomidou.mybatisplus.annotation.DbType;
  4 import com.baomidou.mybatisplus.annotation.IdType;
  5 import com.baomidou.mybatisplus.generator.AutoGenerator;
  6 import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
  7 import com.baomidou.mybatisplus.generator.config.GlobalConfig;
  8 import com.baomidou.mybatisplus.generator.config.PackageConfig;
  9 import com.baomidou.mybatisplus.generator.config.StrategyConfig;
 10 import com.baomidou.mybatisplus.generator.config.rules.DateType;
 11 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
 12 
 13 /**
 14  * 代码生成器工具类(测试)
 15  *
 16  * 3.x生成的代码中,不含@TableField("name")
 17  * 官方人员的说法是:
 18  * @miemie 【成员】
 19  * 根据规则生成的entity不再会出现多余的注解
 20  *
 21  * @author Wenyi Feng
 22  * @since 2018-08-31
 23  */
 24 public class Utils {
 25 
 26     /**
 27      * 执行生成代码
 28      */
 29     public static void generateCode() {
 30         String packageName = "com.raise3d";
 31         //generateByTables(packageName, "t_student", "t_city", "t_idcard");
 32         generateByTables(packageName, null);
 33     }
 34 
 35     private static void generateByTables(String packageName, String... tableNames) {
 36 
 37         // 数据库信息
 38 //        String dbUrl = "jdbc:mysql://localhost:3306/mybatis-plus?useSSL=true";
 39         String dbUrl = "jdbc:mysql://192.168.0.28:3306/cloud_msg";
 40         DataSourceConfig dataSourceConfig = new DataSourceConfig()
 41                 .setDbType(DbType.MYSQL)
 42                 .setUrl(dbUrl)
 43                 .setUsername("root")
 44 //                .setPassword("xfsy2017")
 45                 .setPassword("fuzhi001")
 46                 .setDriverName("com.mysql.jdbc.Driver") // mysql 5
 47 //                .setDriverName("com.mysql.cj.jdbc.Driver") // mysql 8
 48                 /*.setTypeConvert(new MySqlTypeConvert() {
 49                     @Override
 50                     public PropertyInfo processTypeConvert(GlobalConfig globalConfig, String fieldType) {
 51                         //.....
 52                         // 当发现生成的类型并不能满足你的要求时,可以去这里看,然后重写
 53                     }
 54                 })*/
 55                 ;
 56 
 57         // 配置
 58         GlobalConfig config = new GlobalConfig()
 59                 .setActiveRecord(false)
 60                 .setAuthor("Logen.Wang")
 61 //                .setOutputDir("/Users/fengwenyi/Workspace/file/codeGen")
 62                 .setOutputDir("d:/codeGen")
 63                 .setFileOverride(true)
 64                 .setActiveRecord(true)// 不需要ActiveRecord特性的请改为false
 65                 .setEnableCache(false)// XML 二级缓存
 66                 .setBaseResultMap(false)// XML ResultMap
 67                 .setBaseColumnList(true)// XML columList
 68                 .setKotlin(false) //是否生成 kotlin 代码
 69                 // 自定义文件命名,注意 %s 会自动填充表实体属性!
 70                 .setMapperName("%sDao")
 71                 .setXmlName("%sMapper")
 72                 .setServiceName("%sService")
 73                 .setServiceImplName("%sServiceImpl")
 74                 .setControllerName("%sController")
 75                 .setDateType(DateType.ONLY_DATE) //只使用 java.util.date 代替
 76                 .setIdType(IdType.ID_WORKER)
 77                 .setSwagger2(false) // model swagger2
 78                 //.setOpen(true) // 是否打开输出目录
 79                 ;
 80 //                if (!serviceNameStartWithI)
 81 //                    config.setServiceName("%sService");
 82 
 83 
 84         StrategyConfig strategyConfig = new StrategyConfig()
 85                 .setCapitalMode(true) // 全局大写命名 ORACLE 注意
 86                 //.setTablePrefix("t_")// 此处可以修改为您的表前缀(数组)
 87                 .setNaming(NamingStrategy.underline_to_camel) // 表名生成策略
 88                 .setInclude(tableNames)//修改替换成你需要的表名,多个表名传数组
 89                 //.setExclude(new String[]{"test"}) // 排除生成的表
 90                 .setRestControllerStyle(true)
 91                 .setControllerMappingHyphenStyle(true)
 92                 .setEntityLombokModel(true) // lombok实体
 93                 .setEntityBuilderModel(false) // 【实体】是否为构建者模型(默认 false)
 94                 .setEntityColumnConstant(false) // 【实体】是否生成字段常量(默认 false)// 可通过常量名获取数据库字段名 // 3.x支持lambda表达式
 95                 //.setLogicDeleteFieldName("is_delete") // 逻辑删除属性名称
 96                 .entityTableFieldAnnotationEnable(true)
 97                 .setColumnNaming(NamingStrategy.nochange)
 98                 ;
 99 
100         // 包信息配置
101         PackageConfig packageConfig = new PackageConfig()
102                 .setParent(packageName)
103                 .setController("controller")
104                 .setEntity("model")
105                 .setMapper("dao")
106                 .setXml("mapper")
107 
108                 /*
109                 // 共同构建成包名
110                 .setParent("com.fengwenyi")
111                 .setModuleName("model")
112                 */
113                 ;
114 
115         // 执行器
116         new AutoGenerator()
117                 .setGlobalConfig(config)
118                 .setDataSource(dataSourceConfig)
119                 .setStrategy(strategyConfig)
120                 .setPackageInfo(packageConfig)
121                 .execute();
122     }
123 
124 }

启动APP

package com.raise3d.MyGenerator;

//import com.baomidou.mybatisplus.annotation.TableField;
//import com.baomidou.mybatisplus.annotation.TableId;

/**
 * 代码生成器(测试)
 * @author Wenyi Feng
 * @since 2018-08-31
 */
public class App {

//    @TableField
//    @TableId

    public static void main(String[] args) {
        Utils.generateCode();
        //UtilsV2.generateCode();
    }


}

  mybatis plus 是在18年下半年接触到的一个对mybatis进行封装的框架,具备mybatis原有的属性,在mybatis原有的基础上封装基本的curd操作方法,覆盖了日常数据库的操作,(复杂的sql查询除外),简单易用,此生成器生成了controller、service、serviceImpl、dao、mapper、等文件。

mybatis plus代码生成器

mybatis plus代码生成器

在这里插入图片描述

在这里插入图片描述

关于Mybatis-plus的代码生成器的配置mybatisplus代码生成工具的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Mybatis Plus 代码生成器、mybatis plus 基础代码生成器、mybatis plus 的代码生成器、mybatis plus代码生成器等相关内容,可以在本站寻找。

本文标签: