AutoGenerator代码生成器

MP的代码生成器介绍

问题:

目前我们在开发SSM项目的时候,会先搭建一个SSM的开发环境。

我们会根据数据库的表在pojo包中创建对应的实体类,而且可以不

关心项目功能的同时,在mapper层对数据库的表的基础增删改查功

能提前实现,同理,在service层可以将基础的业务代码提前声明。

然后再根据项目功能完成对应的复杂操作。而整个过程需要程序员手动

完成搭建,效率低下。

 

 

解决:

创建一个代码生成类,调用该类的对象,并将对应的数据库表作为参数传递进入

以及一些生成代码的其他要求也传递给该对象,让该对象帮助我们生成基础的开发

代码。

 

 

实现:

MP的代码生成器

作用:

根据数据库中的表动态的生成表对应的mapper,service,pojo,controller层的基础代码,提升开发效率。

[2] MP代码生成器的使用

1.  导入代码生成器相关jar包

 

 

2.  使用代码生成器生成代码 

package com.bjsxt.test;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

public class TestCode {
    public static void main(String[] args) {
        // 代码生成器
             AutoGenerator mpg = new AutoGenerator();
        //全局配置策略
            GlobalConfig gc = new GlobalConfig();
            String path = System.getProperty("user.dir");//动态获取当前项目的路径
            System.out.println(path);
            gc.setFileOverride(false);// 是否覆盖同名文件,默认是false
            gc.setActiveRecord(true);// 不需要ActiveRecord特性的请改为false
            gc.setEnableCache(false);// XML 二级缓存
            gc.setBaseResultMap(true);// XML ResultMap
            gc.setBaseColumnList(false);// XML columList
            gc.setOutputDir(path+"/09-mp-code/src");
            gc.setIdType(IdType.AUTO);//设置主键策略

        //数据源配置
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setUrl("jdbc:mysql://localhost:3306/mp?useUnicode=true&useSSL=false&characterEncoding=utf8");
            // dsc.setSchemaName("public");
            dsc.setDriverName("com.mysql.jdbc.Driver");
            dsc.setUsername("root");
            dsc.setPassword("1234");

        // 包配置
            PackageConfig pc = new PackageConfig();
            pc.setParent("com.bjsxt")
                    .setMapper("mapper")
                    .setService("service")
                    .setController("controller")
                    .setEntity("pojo")
                    .setXml("mapper");
        //策略配置
            StrategyConfig stConfig = new StrategyConfig();
            stConfig.setCapitalMode(true) //全局大写命名
                    .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
                    .setTablePrefix("t_")
                    .setInclude("t_student"); // 生成的表,多个表继续传递即可,String类型的可变参数

        //将策略配置对象集成到代码生成器中
            mpg.setGlobalConfig(gc);
            mpg.setDataSource(dsc);
            mpg.setPackageInfo(pc);
            mpg.setStrategy(stConfig);
            //执行生成
            mpg.execute();
    }
}

  

posted @ 2021-01-26 17:43  巧克力曲奇  阅读(901)  评论(0编辑  收藏  举报