• mybatis_plus 代码自动生成


    1 导入依赖

         <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>3.4.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>2.3</version>
            </dependency>

    2 写配置类:

    import com.baomidou.mybatisplus.annotation.DbType;
    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.converts.OracleTypeConvert;
    import com.baomidou.mybatisplus.generator.config.rules.DateType;
    import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    import org.junit.jupiter.api.Test;
    
    /**
     * @author tlj
     * @date 2021/10/12 17:47:54
     */
    public class AutoGenerate {
        @Test
        public void autoGenerate() {
            // Step1:代码生成器
            AutoGenerator mpg = new AutoGenerator();
    
            // Step2:全局配置
            GlobalConfig gc = new GlobalConfig();
            // 填写代码生成的目录(需要修改)
            String projectPath = "E:IdeaWorkerSpacemybatis_plus_test";
            // 拼接出代码最终输出的目录
            gc.setOutputDir(projectPath + "/src/main/java");
            // 配置开发者信息(可选)(需要修改)
            gc.setAuthor("tlj");
            // 配置是否打开目录,false 为不打开(可选)
            gc.setOpen(false);
            // 实体属性 Swagger2 注解,添加 Swagger 依赖,开启 Swagger2 模式(可选)
            gc.setSwagger2(true);
            // 重新生成文件时是否覆盖,false 表示不覆盖(可选)
            gc.setFileOverride(false);
            // 配置主键生成策略,此处为 ASSIGN_ID(可选)
            gc.setIdType(IdType.AUTO);
            // 配置日期类型,此处为 ONLY_DATE(可选)
            gc.setDateType(DateType.ONLY_DATE);
            // 默认生成的 service 会有 I 前缀
            gc.setServiceName("%sService");
            mpg.setGlobalConfig(gc);
    
            // Step3:数据源配置(需要修改)
            DataSourceConfig dsc = new DataSourceConfig();
            // 配置数据库 url 地址
            dsc.setUrl("你的数据库URL");
            dsc.setDbType(DbType.ORACLE);
            dsc.setTypeConvert(new OracleTypeConvert());
            //dsc.setSchemaName("mybatis_plus_test"); // 可以直接在 url 中指定数据库名
            // 配置数据库驱动
            dsc.setDriverName("oracle.jdbc.driver.OracleDriver");
            // 配置数据库连接用户名
            dsc.setUsername("xxx");
            // 配置数据库连接密码
            dsc.setPassword("123456");
            mpg.setDataSource(dsc);
    
            // Step:4:包配置
            PackageConfig pc = new PackageConfig();
            // 配置父包名(需要修改)
            pc.setParent("com.tan");
            // 配置模块名(需要修改)
            //pc.setModuleName("kjk-cloud");
            // 配置 entity 包名
            pc.setEntity("entity");
            // 配置 mapper 包名
            pc.setMapper("mapper");
            // 配置 service 包名
            pc.setService("service");
            // 配置 controller 包名
            pc.setController("controller");
            mpg.setPackageInfo(pc);
    
            // Step5:策略配置(数据库表配置)
            StrategyConfig strategy = new StrategyConfig();
            // 指定表名(可以同时操作多个表,使用 , 隔开)(需要修改)
            strategy.setInclude(new String[]{"TAB_PROBLEM_GT"});
            // 配置数据表与实体类名之间映射的策略
            strategy.setNaming(NamingStrategy.underline_to_camel);
            // 配置数据表的字段与实体类的属性名之间映射的策略
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);
            // 配置 lombok 模式
            strategy.setEntityLombokModel(true);
            // 配置 rest 风格的控制器(@RestController)
            strategy.setRestControllerStyle(true);
            // 配置驼峰转连字符
            strategy.setControllerMappingHyphenStyle(true);
            // 配置表前缀,生成实体时去除表前缀
            // 此处的表名为 TAB_BROBLEM_GT,去除前缀后剩下为 BLEBREM_GT。
            //strategy.setTablePrefix( "TAB_");
            mpg.setStrategy(strategy);
    
            // Step6:执行代码生成操作
            mpg.execute();
        }
    }

    3 运行:

    注意:

    一定注意,dsc.setDbType(DbType.ORACLE)千万不要写成dsc.setDbType(DbType.ORACLE_12C)。如果参数是DbType.ORACLE,那么将使用OracleQuery类的对象实现对目标用户表的查询。但如果参数为DbType.ORACLE_12C,那么实际上是使用MySqlQuery类的对象对目标用户表进行查询(应该是官方的一个Bug)。

    另一点需要注意的就是 strategy.setIncludeI()方法中的表名一定要大写,否则无法查询到目标表。我就是表名没有大写,所以卡了半天!!!

  • 相关阅读:
    鹰牌陶瓷签约亿客CRM系统 建材行业进入CRM时代
    CRM成为大数据落地的关键
    客户流失了怎么办?
    亿客CRM研发公司简介
    CRM销售管理软件让销售管理成为企业的助力
    CRM帮助企业的营销管理
    浅析移动CRM的客户价值细分
    CRM规划和执行战略
    信息化的先锋CRM
    SaaS的应用将弱化大小企业间竞争差距
  • 原文地址:https://www.cnblogs.com/dragon-lan/p/15409794.html
Copyright © 2020-2023  润新知