com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %, pos 80 like报错解决

摘要:
select*fromtestwhere1=1˂iftest=“info1!=nullandinfo1!

select * from test 
        where 1=1 
        <if test="info1!=null and info1!=''">
            and info1 like "%"#{info1}"%" 
        </if>

23:28:59.112 [25591043@qtp-33385450-2] ERROR c.a.druid.filter.stat.StatFilter - merge sql error, dbType mysql, sql : 
select * from test 
        where 1=1 
         
            and info1 like "%"?"%" limit 0,10
com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %, pos 80
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:237) ~[druid-0.2.21.jar:0.2.21]
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:76) ~[druid-0.2.21.jar:0.2.21]
at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:42) ~[druid-0.2.21.jar:0.2.21]
at com.alibaba.druid.filter.stat.StatFilter.mergeSql(StatFilter.java:145) [druid-0.2.21.jar:0.2.21]
at com.alibaba.druid.filter.stat.StatFilter.createSqlStat(StatFilter.java:629) [druid-0.2.21.jar:0.2.21]
at com.alibaba.druid.filter.stat.StatFilter.statementPrepareAfter(StatFilter.java:305) [druid-0.2.21.jar:0.2.21]
at com.alibaba.druid.filter.FilterEventAdapter.connection_prepareStatement(FilterEventAdapter.java:124) [druid-0.2.21.jar:0.2.21]
at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:446) [druid-0.2.21.jar:0.2.21]
at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.prepareStatement(ConnectionProxyImpl.java:342) [druid-0.2.21.jar:0.2.21]

而之前dbcp2是不报错的,经查,可以通过下列方式解决:

'%${ info1}%' 或者CONCAT(CONCAT('%',#{info1}), '%'),而不要使用 "%"#{info1}"%"

免责声明:文章转载自《com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %, pos 80 like报错解决》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring定时任务(一):SpringTask使用[Python之路] 多种方式实现并发Web Server下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

数据连接池DruId的使用

1,下载druID.jar包 2,配置文件druid.properties配置相关信息 driverClassName : org.gjt.mm.mysql.Driverurl : jdbc:mysql://127.0.0.1:3306/e_testusername : rootpassword : admin#初始化物理连接数目#initialSize...

Druid缓存

连接Oracle数据库,打开PSCache,在其他的数据库连接池都会存在内存占用过多的问题,Druid是唯一解决这个问题的连接池。 oracle数据库下PreparedStatementCache内存问题解决方案:     Oracle支持游标,一个PreparedStatement对应服务器一个游标,如果PreparedStatement被缓存起来重复执...

Apache NiFi之MySQL数据同步到HBase

一.说明 将Apache NiFi做为关系型数据与非关系型数据库的数据同步工具使用,在此场景中需要将mysql导出的avro数据格式转化为json入库HBase 二.开拔 Ⅰ).配置ExecuteSQLRecord a).选择ExecuteSQLRecord 在Processor中搜索ExecuteSQLRecord b).配置ExecuteSQLR...

spring boot:用dynamic-datasource-spring-boot-starter配置druid多数据源(spring boot 2.3.3)

一,dynamic-datasource-spring-boot-starter的用途? 1,dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器 它由苞米豆团队出品 2,官方站及文档: 官方站 https://mybatis.plus/ 官方代码站: https://git...

canal部署启动的时候报错com.alibaba.druid.pool.DruidDataSource

报错信息:com.alibaba.druid.pool.DruidDataSource - testWhileIdle is true, validationQuery not set 解决方法: 找到conf/canal.properties 文件里面的 canal.instance.tsdb.spring.xml=classpath:spring/ts...

Druid 架构

本篇译自 Druid项目白皮书部分内容( https://github.com/apache/incubator-druid/tree/master/publications/whitepaper/druid.pdf),如果有兴趣可看细看原pdf【初次翻译多多包涵】 一个 Druid 集群包含多种特定功能的节点, 我们相信这种设计能够分散业务并且简化整个系...