Mybatis-plus根据数据库的表自动生成实体类

第一步:编写组件

@Component
@ConfigurationProperties(prefix = "generator")
@Data
public class MybatisPlusAutoGeneratorBean {
    //数据库账号
    private String username;
    //数据库密码
    private String password;
    //数据库url地址
    private String url;
    //数据库驱动
    private String driver;
    //想要自动生成的数据库的表(可多张)
    private String[] dbTableList;
    //不生成表的前缀
    private String[] prefix;
}

第二步:编写application.yml

# mybatisplus代码生成器配置
generator:
  username: root
  password: 123
  driver: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://127.0.0.1:3306/gnnykj_dev?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8
  dbTableList:   #数据库的表,可多张(自己设置)
    - ele_branch
  prefix:
    - ele
    - sys

第三步:

@Component
public class MyAutoGenerator {
 
    @Autowired
    MybatisPlusAutoGeneratorBean mybatisPlusAutoGeneratorBean;
 
    /**
     * mybatisplus代码生成器方法
     */
    public void autoGenerator() {
        //代码生成器对象
        com.baomidou.mybatisplus.generator.AutoGenerator mpg = new com.baomidou.mybatisplus.generator.AutoGenerator();
 
        //1、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");//用户目录
        gc.setOutputDir(projectPath + "/src/main/java");    //输出目录
        gc.setAuthor("Bright");//作者名称
        gc.setOpen(false);//生成文件后是否打开资源管理器
        gc.setFileOverride(false);//不要重新生成覆盖
        gc.setServiceName("%sService");//去掉接口前面的字母I
 
        //2、主键策略
        gc.setIdType(IdType.AUTO);//设置主键自增策略
        gc.setDateType(DateType.ONLY_DATE);//设置日期
        //集成Swagger2
//        gc.setSwagger2(true);//实体属性Swagger2注解
        mpg.setGlobalConfig(gc);
 
        // 3、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl(mybatisPlusAutoGeneratorBean.getUrl());
        dsc.setDriverName(mybatisPlusAutoGeneratorBean.getDriver());
        dsc.setUsername(mybatisPlusAutoGeneratorBean.getUsername());
        dsc.setPassword(mybatisPlusAutoGeneratorBean.getPassword());
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);
 
        //4、自动生成包配置
        PackageConfig packageConfig = new PackageConfig();
//        packageConfig.setModuleName("blog");
        packageConfig.setParent("com.gnnykj");
        packageConfig.setController("controller");
        packageConfig.setService("service");
        packageConfig.setMapper("mapper");
        packageConfig.setEntity("entity");
        mpg.setPackageInfo(packageConfig);
 
        //5、策略配置(主要修改配置)
        StrategyConfig strategy = new StrategyConfig();
        strategy.setInclude(mybatisPlusAutoGeneratorBean.getDbTableList());//需要生成的表,可以使用正则表达式
        strategy.setNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//字段生成驼峰
        strategy.setTablePrefix(mybatisPlusAutoGeneratorBean.getPrefix());//不生成表的前缀
        strategy.setEntityLombokModel(true);//生成lombok
        strategy.setLogicDeleteFieldName("deleted");//逻辑删除字段
        strategy.setEntityBooleanColumnRemoveIsPrefix(true);//去除Boolean前面的Is前缀
 
        //6、自动填充
        TableFill create_time = new TableFill("create_time", FieldFill.INSERT);
        TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);
        ArrayList<TableFill> list = new ArrayList<>();
        list.add(create_time);
        list.add(update_time);
        strategy.setTableFillList(list);
 
        //7、乐观锁
        strategy.setVersionFieldName("version");//乐观锁
        strategy.setRestControllerStyle(true);//开启RestController风格
        strategy.setControllerMappingHyphenStyle(true);//url驼峰命名转换
        mpg.setStrategy(strategy);
 
        //8、执行
        mpg.execute();
 
    }
}

第四步:在测试类里面启动生成

    @Autowired
    MyAutoGenerator myAutoGenerator;
 
    @Test
    public void test() {
        myAutoGenerator.autoGenerator();
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值