• 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

  • 相关阅读:
    HTML5 localStorage and sessionStorage
    WebViewJavascriptBridge-Obj-C和JavaScript互通消息的桥梁
    js控制手机号码中间用星号代替
    无法删除登录名 '***',因为该用户当前正处于登录状态。 (Microsoft SQL Server,错误: 15434)
    在QT中添加LIB的方法
    Android颜色代码
    判断ubuntu是32位还是64位
    Android应用市场App发布
    ubuntu目录结构(转)
    QT调用CHM方法
  • 原文地址:https://www.cnblogs.com/zyh-s/p/13253411.html
Copyright © 2020-2023  润新知