本文的目的是介绍Mybatis-plus的代码生成器的配置的详细情况,特别关注mybatisplus代码生成工具的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解Myb
本文的目的是介绍Mybatis-plus的代码生成器的配置的详细情况,特别关注mybatisplus代码生成工具的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解Mybatis-plus的代码生成器的配置的机会,同时也不会遗漏关于Mybatis Plus 代码生成器、mybatis plus 基础代码生成器、mybatis plus 的代码生成器、mybatis plus代码生成器的知识。
本文目录一览:- Mybatis-plus的代码生成器的配置(mybatisplus代码生成工具)
- Mybatis Plus 代码生成器
- mybatis plus 基础代码生成器
- mybatis plus 的代码生成器
- mybatis plus代码生成器
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要方便很多,不需要配置文件
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 基础代码生成器
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 的代码生成器
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的代码生成器的配置和mybatisplus代码生成工具的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Mybatis Plus 代码生成器、mybatis plus 基础代码生成器、mybatis plus 的代码生成器、mybatis plus代码生成器等相关内容,可以在本站寻找。
本文标签: