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