代码生成器 generator

代码生成器 generator的使用

适用版本:mybatis-plus-generator 3.5.1 及其以上版本,由于生成器代码不需要提交维护,代码放在test包下面即可

1、引入依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.1</version>
</dependency>

方式一
2、在test类中执行以下代码快速生成

FastAutoGenerator.create("url", "username", "password") //写需要生成的数据库的信息
    .globalConfig(builder -> {
        builder.author("baomidou") // 设置作者
            .enableSwagger() // 开启 swagger 模式
            .fileOverride() // 覆盖已生成文件
            .outputDir("D://"); // 指定输出目录
    })
    .packageConfig(builder -> {
        builder.parent("com.baomidou.mybatisplus") // 设置父包名,就是生成后的类的包名字
            .moduleName("system") // 设置父包模块名
            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://")); // 设置mapperXml生成路径
    })
    .strategyConfig(builder -> {
        builder.addInclude("t_simple") // 设置需要生成的表名
            .addTablePrefix("t_", "c_"); // 设置过滤表前缀 ,这些不需要这是注掉
    })
    .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
    .execute();


方式二、设置好对应信息在生成

public class CodeGenerator {

    @Test
    public void genCode() {

        // 1、创建代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 2、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir"); //获取该项目的全路径
        gc.setOutputDir(projectPath + "/src/main/java");//设置生成后存放的路径
        gc.setAuthor("Helen");//设置作者
        gc.setOpen(false); //生成后是否打开资源管理器
        gc.setServiceName("%sService");	//去掉Service接口的首字母I
        gc.setIdType(IdType.AUTO); //主键策略 ,在生成的对象所有的id属性都会加上      @TableId(value = "id", type = IdType.AUTO)注解,主键自增
        gc.setSwagger2(true);//开启Swagger2模式,自动生成接口文档,使用必须引入依赖下面的依赖,生成时每个属性都会有    @ApiModelProperty(value = "编号")这样的注解 会把创建表时的字段注释拿过来,这样可以清楚知道每个字段对应的意思
        mpg.setGlobalConfig(gc);

        // 3、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/数据库库名?serverTimezone=GMT%2B8&characterEncoding=utf-8");//后面两个参数分别是设置时区和字符集
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");//设置jdbc驱动,mysql8以下是com.mysql.jdbc.Drive,mysql8以上是com.mysql.cj.jdbc.Driver
        dsc.setUsername("root");//数据库username
        dsc.setPassword("123456");//数据库password
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 4、包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.srb.core");
        pc.setEntity("pojo.entity"); //此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
        mpg.setPackageInfo(pc);

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略,由下划线命名改为驼峰命名
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);  //列名下划线转驼峰命名
        strategy.setEntityLombokModel(true);    //给所有的实体类加lombok注解,不自动生成get和set,但加上了@Data注解,会在编译的时候自动生成get和set
        strategy.setLogicDeleteFieldName("is_deleted");   //逻辑删除字段名,给逻辑删除字段加逻辑注解 @logicDelete
        strategy.setEntityBooleanColumnRemoveIsPrefix(true); //去掉is_前缀,阿里的开发文档规定属性名不要以is开头
        strategy.setRestControllerStyle(true);  //restful api风格,返回json的
        mpg.setStrategy(strategy);

        //6执行
        mpg.execute();}
         
}

使用swagger需要引入的依赖

  <!--swagger-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
    </dependency>
    <!--swagger ui-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
    </dependency>
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值