工具代码
package com.vshare.decision;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
/**
* @Author djw
* @Description mybatisPlus代码生成器
* @Date 2019/12/4 10:55
*/
public class MybatisPlusGenerator {
public static void main(String[] args) {
AutoGenerator generator = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
// 配置代码输出目录
gc.setOutputDir(projectPath + "/src/main/java");
// 配置作者
gc.setAuthor("djw");
//生成完毕后是否打开文件夹
gc.setOpen(false);
//实体属性 Swagger2 注解
gc.setSwagger2(true);
//是否覆盖已有的代码
gc.setFileOverride(true);
// gc.setActiveRecord(true);
//设置生成的日期类型为 Date
gc.setDateType(DateType.ONLY_DATE);
generator.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL);
dsc.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8");
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
generator.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("com.djw.test");
generator.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
// 命名规则
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//设置表中对应的下划线字段名
strategy.setEntityTableFieldAnnotationEnable(true);
strategy.setEntityBuilderModel(true);
//strategy.setSuperEntityClass("com.example.mybatisplus.common.BaseEntity");
// 实体是否使用Lombok插件
strategy.setEntityLombokModel(true);
// 控制层是否使用Rest风格
//strategy.setRestControllerStyle(true);
//strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");
//需要生成的表数组
strategy.setInclude(new String[]{"base_user"});
// strategy.setSuperEntityColumns("id");
// strategy.setControllerMappingHyphenStyle(true);
// strategy.setTablePrefix(pc.getModuleName() + "_");
generator.setStrategy(strategy);
//创建模板
TemplateConfig config = new TemplateConfig();
//设置为null代表不生成
config.setController(null);
config.setXml(null);
generator.setTemplate(config);
generator.execute();
}
}
相关jar包
<!-- 代码生成配置 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.1.1</version>
</dependency>
<!-- 模板引擎 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
生成后的模板
package com.vshare.decision.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 用户表
* </p>
*
* @author djw
* @since 2019-12-04
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "User对象", description = "用户表")
@TableName("user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键id")
@TableId(value = "id",type = IdType.UUID)
private String id;
@ApiModelProperty(value = "登录账号")
@TableField("username")
private String username;
@ApiModelProperty(value = "真实姓名")
@TableField("realname")
private String realname;
@ApiModelProperty(value = "密码")
@TableField("password")
private String password;
@ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
@TableField("del_flag")
private Boolean delFlag;
@ApiModelProperty(value = "创建人")
@TableField("create_by")
private String createBy;
@ApiModelProperty(value = "创建时间")
@TableField("create_time")
private Date createTime;
}
待解决问题:生成的实体类少了个@TableName注解,需要手动加上,目前没有找到在哪配置才能生成这个注解。