mybatis-plus自动生成实体类(包含swagger注解)

更新时间:2023-05-19 01:56:16 阅读: 评论:0

mybatis-plus⾃动⽣成实体类(包含swagger注解)mybatis-plus⾃动⽣成实体类(包含swagger注解)
mybatis-plus逆向⼯程, ⾃动⽣成实体类,带swaager注解
1. ⾸先导⼊相应的jar包
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.14.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!--就不需要⼿动引⼊mybatis -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<!--mybatisplus 代码⽣成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.31</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
<!--slf4j-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.10.5</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.10.5</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.24</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.24</version>
</dependency>
</dependencies>
2.然后编写⾃动⽣成代码类
package com;
import batisplus.annotation.DbType;
import ator.AutoGenerator;
import ator.InjectionConfig;
import fig.*;
import verts.MySqlTypeConvert; import fig.po.TableInfo;
import fig.rules.DbColumnType; import fig.rules.IColumnType;
import fig.rules.NamingStrategy;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class GeneratorCommon {
/**
* <p> Mr.Chen
* MySQL ⽣成演⽰
* </p>
*/
//获取项⽬绝对路径
private static String canonicalPath ="";
public static void main(String[] args){
//获取项⽬路径
try{
canonicalPath =new File("").getCanonicalPath();
}catch(Exception e){
e.printStackTrace();
}
System.out.println("canonicalPath="+ canonicalPath);
//        String filePath = canonicalPath+"\\mybatisPlusGer\\src\\main\\";
String filePath = canonicalPath +"\\src\\main\\";
AutoGenerator mpg =new AutoGenerator();
// 选择 freemarker 引擎,默认 Veloctiy
//mpg.tTemplateEngine(new FreemarkerTemplateEngine());
// 全局配置
GlobalConfig gc =new GlobalConfig();
gc.tAuthor("Mr.Chen");
gc.tSwagger2(true);//实体属性 Swagger2 注解
gc.tOutputDir(filePath +"java");//代码⽣成路径
gc.tFileOverride(true);// 是否覆盖同名⽂件,默认是fal
gc.tActiveRecord(true);// 不需要ActiveRecord特性的请改为fal
gc.tEnableCache(fal);// XML ⼆级缓存
gc.tBaResultMap(true);// XML ResultMap
gc.tBaColumnList(fal);// XML columList
gc.tOpen(fal);//⽣成后打开⽂件夹
/* ⾃定义⽂件命名,注意 %s 会⾃动填充表实体属性! */
gc.tControllerName("%sController");
gc.tServiceName("%sService");
gc.tServiceImplName("%sServiceImpl");
gc.tMapperName("%sMapper");
gc.tXmlName("%sMapper");
mpg.tGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc =new DataSourceConfig();
dsc.tDbType(DbType.MYSQL);
dsc.tTypeConvert(new MySqlTypeConvert(){
// ⾃定义数据库表字段类型转换【可选】
@Override
public IColumnType processTypeConvert(GlobalConfig gc, String fieldType){
System.out.println("转换类型:"+ fieldType);
// 注意!!processTypeConvert 存在默认类型转换,如果不是你要的效果请⾃定义返回、⾮如下直接返回。
//默认会把⽇期类型转为LocalDateTime ,在查询的时候会报错,这⾥改为Date
String t = LowerCa();
ains("date")|| t.contains("time")|| t.contains("year")){
return DbColumnType.DATE;
}el{
return super.processTypeConvert(gc, fieldType);
}
}
});
//数据库连接配置
dsc.tDriverName("sql.jdbc.Driver");
//      dsc.tDriverName("sql.cj.jdbc.Driver"); //mysql8.0使⽤
dsc.tUrname("root");
dsc.tPassword("root");
dsc.tUrl("jdbc:mysql://192.168.1.199/cloud_shop?uUnicode=true&characterEncoding=utf8");
mpg.tDataSource(dsc);
// 策略配置
StrategyConfig strategy =new StrategyConfig();
//strategy.tCapitalMode(true);// 全局⼤写命名 ORACLE 注意
//strategy.tTablePrefix("tb_");// 此处可以修改为您的表前缀
strategy.tNaming(NamingStrategy.underline_to_camel);// 表名⽣成策略
strategy.tNaming(NamingStrategy.underline_to_camel);// 表名⽣成策略
strategy.tColumnNaming(NamingStrategy.underline_to_camel);//采⽤驼峰映射
strategy.tEntityLombokModel(true);//【实体】是否为lombok模型(默认 fal)
strategy.tInclude(new String[]{"article","article_data"});// 需要⽣成的表.如果需要⽣成所有的, 注释掉此⾏就可以// strategy.tExclude(new String[]{"test"}); // 排除⽣成的表
三国演义的主要内容
// ⾃定义实体⽗类
// strategy.tSuperEntityClass("com.baomidou.demo.TestEntity");
// ⾃定义实体,公共字段
// strategy.tSuperEntityColumns(new String[] { "test_id", "age" });wps图片排版
// ⾃定义 mapper ⽗类
// strategy.tSuperMapperClass("com.baomidou.demo.TestMapper");
// ⾃定义 rvice ⽗类
// strategy.tSuperServiceClass("com.baomidou.demo.TestService");
// ⾃定义 rvice 实现类⽗类
// strategy.tSuperServiceImplClass("com.baomidou.demo.TestServiceImpl");
// ⾃定义 controller ⽗类
/
/ strategy.tSuperControllerClass("com.baomidou.demo.TestController");
// 【实体】是否⽣成字段常量(默认 fal)
春节特点
// public static final String ID = "test_id";
// strategy.tEntityColumnConstant(true);
// 【实体】是否为构建者模型(默认 fal)
// public Ur tName(String name) {this.name = name; return this;}
// strategy.tEntityBuilderModel(true);
海贼王女帝壁纸mpg.tStrategy(strategy);
// 包配置
PackageConfig pc =new PackageConfig();
pc.tParent("com.faw.jetta");// ⾃定义包路径
pc.tController("controller");// 这⾥是控制器包名,默认 web
pc.tMapper("mapper");// 设置Mapper包名,默认mapper
pc.tService("rvice");// 设置Service包名,默认rvice
pc.tEntity("ity");// 设置Entity包名,默认entity,继承的⽗类已序列化
pc.tXml("l");// 设置Mapper XML包名,默认l
mpg.tPackageInfo(pc);
// 注⼊⾃定义配置,可以在 VM 中使⽤ cfg.abc 设置的值
InjectionConfig cfg =new InjectionConfig(){
@Override
public void initMap(){
Map<String, Object> map =new HashMap<String, Object>();
map.put("abc",Config().getGlobalConfig().getAuthor()+"-mp");
this.tMap(map);
}
};
// 调整 xml ⽣成⽬录演⽰
List<FileOutConfig> focList =new ArrayList<>();
focList.add(new FileOutConfig("/l.vm"){
@Override
public String outputFile(TableInfo tableInfo){
return filePath +"\\resources\\mapper\\xml\\"+ EntityName()+"l";
}
征女友});
cfg.tFileOutConfigList(focList);
mpg.tCfg(cfg);
// 注⼊⾃定义配置,可以在 VM 中使⽤ cfg.abc 【可⽆】
//        InjectionConfig cfg = new InjectionConfig() {
//            @Override
//            public void initMap() {
//                Map<String, Object> map = new HashMap<String, Object>();
//                map.put("abc", Config().getGlobalConfig().getAuthor() + "-mp");
//                this.tMap(map);
//            }
/
/        };
//        };
中国认证认可
//
//        // ⾃定义 xxList.jsp ⽣成
//        List<FileOutConfig> focList = new ArrayList<>();
//        focList.add(new FileOutConfig("/template/list.jsp.vm") {
//            @Override
//            public String outputFile(TableInfo tableInfo) {
//                // ⾃定义输⼊⽂件名称
//                return "D://my_" + EntityName() + ".jsp";
//            }
/
/        });
//        cfg.tFileOutConfigList(focList);
//        mpg.tCfg(cfg);
//
//        // 调整 xml ⽣成⽬录演⽰
悬岩
//        focList.add(new FileOutConfig("/l.vm") {
//            @Override
//            public String outputFile(TableInfo tableInfo) {
//                return "/develop/code/xml/" + EntityName() + ".xml";
//            }
//        });
/
/        cfg.tFileOutConfigList(focList);
//        mpg.tCfg(cfg);
//
//        // 关闭默认 xml ⽣成,调整⽣成⾄根⽬录
//        TemplateConfig tc = new TemplateConfig();
//        tc.tXml(null);
//        mpg.tTemplate(tc);
// ⾃定义模板配置,可以 copy 源码 mybatis-plus/src/main/resources/templates 下⾯内容修改,
// 放置⾃⼰项⽬的 src/main/resources/templates ⽬录下, 默认名称⼀下可以不配置,也可以⾃定义模板名称// TemplateConfig tc = new TemplateConfig();
// tc.tController("...");
// tc.tEntity("...");
// tc.tMapper("...");
// tc.tXml("...");
// tc.tService("...");
// tc.tServiceImpl("...");
// 如上任何⼀个模块如果设置空 OR Null 将不⽣成该模块。
// mpg.tTemplate(tc);
// 执⾏⽣成
// 打印注⼊设置【可⽆】
//        Cfg().getMap().get("abc"));
}
野望原文及翻译
}
⽣成的代码展⽰

本文发布于:2023-05-19 01:56:16,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/915094.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:默认   定义   配置   实体   是否
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图