用Wrapper拼接条件,处理报错信息org.springframework.jdbc.BadSqlGrammarException

1,查询条件

Wrapper<Dict> w = new EntityWrapper<>(); w.isWhere(false); if (StringUtils.isNotBlank(rootId))
 { w.like("pids", rootId + ","); w.or(); w.eq("id", rootId); w.and().eq("status", 1); }
w.orderBy("ORDERS"); List<Dict> selectList = dictMapper.selectList(w);

2,调用时报错,会提示org.springframework.jdbc.BadSqlGrammarException
"ORA-00933: SQL 命令未正确结束",
  "data": "org.springframework.jdbc.BadSqlGrammarException

3,报错信息sql:

SELECT  ID AS id,VALUE AS value,LABEL AS label,TYPE AS type,DESCRIPTION
 AS description,app_id AS appId,pid,pids,ctime,utime,status,orders  FROM UUMS_DICT  
      AND (pids LIKE ?)  OR (id = ?)  AND (status = ?) ORDER BY ORDERS

4,用MyBatisPlus就要注入一个bean

@Configuration
public class MyBatisPlusConfiguration {

    @Value("${spring.datasource.druid.db-type}")
    private String dbType;

//注意是这个导致
    @Bean
    public ISqlInjector sqlInjector() {
        return new LogicSqlInjector();
    }

    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptorOracle() {
        PaginationInterceptor page = new PaginationInterceptor();
        page.setDialectType(dbType);
        return page;
    }

}

 

5,yml配置文件

# 配置数据源
spring:
  datasource:
    url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
    username: test
    password: test
    druid:
      #数据库类型,值为oracle,mysql
      db-type: oracle
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值