开发者社区 问答 正文

Mybatis-plus2.1.1版本使用代码生成器生成代码一次问题资源?报错

@青苗 你好,想跟你请教个问题:您好,我在工程中使用了Mybatis-plus的2.1.1版本,在编写代码生产类后使用会报错查询%s问题,请问这个是版本bug吗,因为我在进行dubug的时候发现查询的时候sql里面并没有替换为表名。希望您在空闲的时候能解惑,感谢!

maven配置为

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

源码为

public static void main(String[] args) throws SQLException {
        String[] tableNames = {
 "model_resource_apply_record"};
        doGenerator(tableNames, "com.resource.console.message");
    }


    private static void doGenerator(String[] tableName, String packageName) {
        //1. 全局配置
        GlobalConfig config = new GlobalConfig();
        config.setActiveRecord(true) // 是否支持AR模式
                .setAuthor("author") // 作者
                .setOutputDir("D:\dsp-brain-console\src\main\java") // 生成路径
                .setFileOverride(false)  // 文件覆盖
                .setServiceName("%sService")  // 设置生成的service接口的名字
                .setMapperName("%sDao")
                .setEnableCache(false)// XML 二级缓存
                .setBaseResultMap(true)//生成基本的resultMap
                .setBaseColumnList(true);//生成基本的SQL片段

        //2. 数据源配置
        DataSourceConfig dsConfig = new DataSourceConfig();
        dsConfig.setDbType(DbType.MYSQL)  // 设置数据库类型
                .setDriverName("com.mysql.jdbc.Driver")
                .setUrl("xxx")
                .setUsername("xxx")
                .setPassword("xxx");

        //3. 策略配置globalConfiguration        StrategyConfig stConfig = new StrategyConfig();
        stConfig.setCapitalMode(true) //全局大写命名
                .setNaming(NamingStrategy.underline_to_camel)
                .setEntityLombokModel(true)
                .setInclude(tableName)
                .setRestControllerStyle(true);


        //4. 包名策略配置
        PackageConfig pkConfig = new PackageConfig();
        pkConfig.setParent(packageName)
                .setMapper("dao")//dao
                .setService("service")//servcie
                .setController("controller")//controller
                .setEntity("entity")
                .setXml("mapper");//mapper.xml

        //5. 模板配置,不配置的话就走默认的模板
        TemplateConfig tpConfig = new TemplateConfig();
//    tpConfig.setEntity("/conf/mp_templates/entity.java.vm");
        tpConfig.setController(null);
//    tpConfig.setService("/conf/mp_templates/service.java.vm");
//    tpConfig.setServiceImpl("/conf/mp_templates/serviceImpl.java.vm");
//    tpConfig.setMapper("/conf/mp_templates/mapper.java.vm");
//    tpConfig.setXml("/conf/mp_templates/mapper.xml.vm");

        //6. 整合配置
        AutoGenerator ag = new AutoGenerator();
        ag.setGlobalConfig(config)
                .setDataSource(dsConfig)
                .setStrategy(stConfig)
                .setPackageInfo(pkConfig)
                .setTemplate(tpConfig);

        //7. 执行
        ag.execute();
    }

 

展开
收起
爱吃鱼的程序员 2020-06-05 13:48:36 928 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>这里错误是执行 sql 需要 format 但是没有执行,你确定下 querySQL 是不是 mysql 的实现</p> 
    

     

    2X 最新版本是 2.3.1 如果还是自己无法解决你试试最新版本

    如果是新项目建议用 3X

                            感谢您的回答!我切换为2.2.0之后可以正常使用了。
    
    2020-06-05 13:48:52
    赞同 展开评论