mybatis-plus 代码生成器

所需jar

<!--mybatis-plus 相关依赖-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.3.1</version>
    </dependency>

    <!--mybatis-plus代码生成器 相关依赖-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.3.1</version>
    </dependency>

    <!--代码生成器模板引擎 相关依赖-->
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.2</version>
    </dependency>
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.Scanner;

/**
 * mybatis-plus 代码生成器
 */
public class CodeGenerator {

    /**
     * <p>
     * 读取控制台内容
     * </p>
     */
    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) {

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        //是否支持AR模式
        gc.setActiveRecord(true)
            .setAuthor("zyh") //作者
            .setOutputDir("D:\workspace_my\mp03\src\main\java")  //生成路径
            .setFileOverride(true)//是否文件覆盖,如果多次
            .setServiceName("%sService") //设置生成的service接口名首字母是否为I
            .setIdType(IdType.AUTO) //主键策略
            .setBaseResultMap(true)//开启 BaseResultMap 默认false
            .setEntityName("%sEntity")//实体命名方式  默认值:null 例如:%sEntity 生成 UserEntity
            .setMapperName("%sMapper")//mapper 命名方式 默认值:null 例如:%sDao 生成 UserDao
            .setXmlName("%sMapper")//Mapper xml 命名方式   默认值:null 例如:%sDao 生成 UserDao.xml
            .setServiceName("%sService")//service 命名方式   默认值:null 例如:%sBusiness 生成 UserBusiness
            .setServiceImplName("%sServiceImpl")//service impl 命名方式  默认值:null 例如:%sBusinessImpl 生成 UserBusinessImpl
            .setControllerName("%sController")//controller 命名方式    默认值:null 例如:%sAction 生成 UserAction
            .setFileOverride(false);


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


        //策略配置
        StrategyConfig stConfig = new StrategyConfig();
        stConfig.setCapitalMode(true) // 全局大写命名
//                .setDbColumnUnderline(true) //表名 字段名 是否使用下滑线命名
                .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
                .setInclude(scanner("表名,多个英文逗号分割").split(",")) //生成的表
                .setTablePrefix(scanner("表名前缀 如tbl_table 输入tbl")); // 表前缀

        // 包配置
        PackageConfig pkConfig = new PackageConfig();
        pkConfig.setParent("com.atguigu.mp")//父包名
                .setController("controller")
                .setEntity("beans")
                .setService("service")
                .setMapper("mapper")
                .setXml("mapper");

        //com.atguigu.mp  下单独建立包: scanner("模块名")  放入
//        PackageConfig pc = new PackageConfig();
//        pc.setModuleName(scanner("模块名"));
//        pc.setParent("com.baomidou.ant");
//        mpg.setPackageInfo(pc);




        //5.整合配置
        AutoGenerator ag = new AutoGenerator().setGlobalConfig(gc)
                .setDataSource(dsc)
                .setStrategy(stConfig)
                .setPackageInfo(pkConfig);


        ag.execute();

    }

}

官方地址:https://mp.baomidou.com/guide/generator.html

原文地址:https://www.cnblogs.com/zyh-s/p/13253411.html