MyBatis-Plus 代码生成类

生成po

        PO即持久对象(Persistent Object),它们是由一组属性和属性的get和set方法组成,PO对应于数据库的表。
        在开发持久层代码时需要根据数据表编写PO类,在实际开发中通常使用代码生成器(工具)生成PO类的代码。

1、我使用的mysql,下面是我的数据库表。

2、以下是我的代码实现:

        注意下面有几处地方需要你自己修改:我会标红


package com.xuecheng.generator; 

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Arrays;

/**
* MyBatis-Plus 代码生成类
*/
public class ContentCodeGenerator {

   // TODO 修改服务名以及数据表名  我自己数据的名字是 xc_content
   private static final String SERVICE_NAME = "content";

   //数据库账号
   private static final String DATA_SOURCE_USER_NAME  = "root";
   //数据库密码
   private static final String DATA_SOURCE_PASSWORD  = "123456";
   //生成的表
   private static final String[] TABLE_NAMES = new String[]{

        //这里是你自己数据的表
//       "mq_message",
//       "mq_message_history"
          "course_base",
          "course_market",
          "teachplan",
          "teachplan_media",
          "course_teacher",
//        "course_publish",
//        "course_publish_pre"
//       "course_category"

   };

   // TODO 默认生成entity,需要生成DTO修改此变量
   // 一般情况下要先生成 DTO类 然后修改此参数再生成 PO 类。
   private static final Boolean IS_DTO = false;

   public static void main(String[] args) {
      // 代码生成器
      AutoGenerator mpg = new AutoGenerator();
      // 选择 freemarker 引擎,默认 Velocity
      mpg.setTemplateEngine(new FreemarkerTemplateEngine());
      // 全局配置
      GlobalConfig gc = new GlobalConfig();
      gc.setFileOverride(true);
      //生成路径  自己项目的路径
      gc.setOutputDir(System.getProperty("user.dir") + "/xuecheng-plus-generator/src/main/java");

      gc.setAuthor("itcast");
      gc.setOpen(false);
      gc.setSwagger2(false);
      gc.setServiceName("%sService");
        gc.setBaseResultMap(true);
        gc.setBaseColumnList(true);

      if (IS_DTO) {
         gc.setSwagger2(true);
         gc.setEntityName("%sDTO");
      }
      mpg.setGlobalConfig(gc);

      // 数据库配置
      DataSourceConfig dsc = new DataSourceConfig();
      dsc.setDbType(DbType.MYSQL);
      //自己数据库名   我的数据库名  xc_content
      dsc.setUrl("jdbc:mysql://localhost/xc_" + SERVICE_NAME
            + "?serverTimezone=UTC&useUnicode=true&useSSL=false&characterEncoding=utf8");

//    dsc.setDriverName("com.mysql.jdbc.Driver");
      dsc.setDriverName("com.mysql.cj.jdbc.Driver");
      dsc.setUsername(DATA_SOURCE_USER_NAME);
      dsc.setPassword(DATA_SOURCE_PASSWORD);
      mpg.setDataSource(dsc);

      // 包配置
      PackageConfig pc = new PackageConfig();
      pc.setModuleName(SERVICE_NAME);
      pc.setParent("com.xuecheng");

      pc.setServiceImpl("service.impl");
      pc.setXml("mapper");
      pc.setEntity("model.po");
      mpg.setPackageInfo(pc);

      // 设置模板
      TemplateConfig tc = new TemplateConfig();
      mpg.setTemplate(tc);

      // 策略配置
      StrategyConfig strategy = new StrategyConfig();
      strategy.setNaming(NamingStrategy.underline_to_camel);
      strategy.setColumnNaming(NamingStrategy.underline_to_camel);
      strategy.setEntityLombokModel(true);
      strategy.setRestControllerStyle(true);
      strategy.setInclude(TABLE_NAMES);
      strategy.setControllerMappingHyphenStyle(true);
      strategy.setTablePrefix(pc.getModuleName() + "_");
      // Boolean类型字段是否移除is前缀处理
      strategy.setEntityBooleanColumnRemoveIsPrefix(true);
      strategy.setRestControllerStyle(true);

      // 自动填充字段配置
      strategy.setTableFillList(Arrays.asList(
            new TableFill("create_date", FieldFill.INSERT),
            new TableFill("change_date", FieldFill.INSERT_UPDATE),
            new TableFill("modify_date", FieldFill.UPDATE)
      ));
      mpg.setStrategy(strategy);

      mpg.execute();
   }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值