MyBatis-Plus自动生成代码工具的配置

在使用了MyBatis-Plus的强大的CURD的功能后,再给大家推荐下 MyBatis-Plus的代码自动生成工具.

我这还是继上一章的介绍,如有疑问请查看上一篇 springboot+ MyBatis-Plus 项目搭建

话不多说,首先POM.xml引入JAR包(因为我这里使用的是freemarker模板,还有其他模板可供选择)


            com.baomidou
            mybatis-plus-generator
            3.3.1.tmp
        
        
            org.freemarker
            freemarker
            2.3.30
        

代码自动成工具类:

public class JavaGenerator {

    /**
     * 

* 读取控制台内容,用于自己输入要生成的模块(生成后以文件夹形式)和表名 *

*/ 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(); 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(System.getProperty("user.name"));//获取当前的用户名 gc.setOpen(false); gc.setMapperName("%sDAO");//配置生成后Mapper的命名方式 gc.setEntityName("%sBO");//配置生成后实体类的命名方式 mpg.setGlobalConfig(gc); // 数据源配置(根据自己的实际数据库配置信息填写) DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL); dsc.setUrl("jdbc:mysql://localhost:3306/itsys_bastion?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"); // dsc.setSchemaName("public"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("shugege"); mpg.setDataSource(dsc); // 包配置 PackageConfig pc = new PackageConfig(); String moduleName = scanner("角色名");//模块名可根据实际情况是否需要 pc.setParent("com.demo.mybatis_plus");//自己的包名 //配置路径 pc.setEntity("entity.BO"); pc.setMapper("mapper." + moduleName); pc.setService("service." + moduleName); pc.setServiceImpl("service." + moduleName + ".impl"); //不生成Controller 和 xml 两个命名的包(不是指**Controller.java 和 *.xml文件) //因为我们项目没有Controller层 和使用的是MyBatis的注解,所以不需要生成Controller和XML文件 pc.setController(""); pc.setXml(""); mpg.setPackageInfo(pc); // 自定义配置 InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { // to do nothing } }; cfg.setFileCreate(new IFileCreate() { @Override public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) { //这里配置不想生成的文件类型 //不生成controller文件 if (fileType == FileType.CONTROLLER) { return false; } //不生成xml文件 if (fileType == FileType.XML) { return false; } // 允许生成模板文件 return true; } }); mpg.setCfg(cfg); // 配置模板 我这里没有使用自定义的模板 所以这块用不上 //TemplateConfig templateConfig = new TemplateConfig(); // 配置自定义输出模板 //templateConfig.setXml(""); //templateConfig.setController(""); // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略 strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 自定义实体父类 // strategy.setSuperEntityClass("com.baomidou.demo.TestEntity"); strategy.setEntityLombokModel(true); strategy.setEntityBuilderModel(true); // strategy.setRestControllerStyle(true); // 公共父类 // strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!"); // 自定义实体,公共字段 // strategy.setSuperEntityColumns("id"); strategy.setInclude(scanner("表名,多个英文逗号分割").split(",")); // strategy.setControllerMappingHyphenStyle(true); // 此处可以修改为您的表前缀 // strategy.setTablePrefix(pc.getModuleName() + "_"); strategy.setTablePrefix("t_"); mpg.setStrategy(strategy); mpg.setTemplateEngine(new FreemarkerTemplateEngine()); mpg.execute(); } }

至此就配置完成了,然后执行JavaGenerator的manin方法就可以了.

未生成前:

MyBatis-Plus自动生成代码工具的配置_第1张图片

执行中:

MyBatis-Plus自动生成代码工具的配置_第2张图片

代码生成后:

MyBatis-Plus自动生成代码工具的配置_第3张图片

然后我们看下BO 和DAO的代码吧:

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_manage_log")
public class ManageLogBO implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "ID", type = IdType.AUTO)
    private Integer id;

    @TableField("USER_ID")
    private Integer userId;

    @TableField("USER_ACCOUNT")
    private String userAccount;

    @TableField("OPERATE_MODULE")
    private String operateModule;

    /**
     * 添加、删除、修改、查询、搜索、导入、导出、清除、备份、恢复、启动、查看
     */
    @TableField("OPERATE_TYPE")
    private String operateType;

    @TableField("OPERATE_TIME")
    private String operateTime;

    @TableField("OPERATE_CONTENT")
    private String operateContent;

    /**
     * 1:成功 0:失败
     */
    @TableField("OPERATE_RESULT")
    private Integer operateResult;

    @TableField("EVENT_LEVEL")
    private Integer eventLevel;

    @TableField("CREATE_TIME")
    private LocalDateTime createTime;

    @TableField("DR")
    private Integer dr;


}
public interface ManageLogDAO extends BaseMapper {

}

至此完成了全部,感谢MyBatis-Plus.

你可能感兴趣的:(JAVA,MyBatis-Plus)