apache dbutils查询时出错 400 请求报错 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

apache dbutils查询时出错 400 请求报错 

kun坤 2020-05-30 23:05:21 79

@红薯 求救啊!!!!!最近在开发一个东西,数据库操作层用的是apache dbutils,结果今天遇到一个恶心的问题,就是我的SQL是这样的:
select top 9 * from ENLesson where (name_cn like ? or name_en like ?) and id not in(select top 0 id from ENLesson where name_cn like ? or name_en like ?);
然后程序是queryRunner.query(sql,new BeanListHandler<Lesson>(Lesson.class),"%" + key + "%", "%" + key + "%", "%" + key + "%", "%" + key + "%");
尼玛,程序一直报错:

java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: ',' 附近有语法错误。 Query: select top 9 * from ENLesson where id not in(select top 9 id from ENLesson where name_cn like ? or name_en like ?) and (name_cn like ? or name_en like ?) Parameters: [%java%, %java%, %java%, %java%]
我特么现在蛋都 碎了,以前没用过这玩意,这种错误是什么情况?救急啊!!!非常感谢了!
云服务器登录 云服务器设置
分享到
取消 提交回答
全部回答(1)
  • kun坤
    2020-05-30 23:05:37

    怎么没单引号######哪里?你是指参数吗?这里是预处理,不用带'啊######like ?' 多了一个单引号啊。######这个我coyp过来写错了,不是这个的问题######逗号附近有语法错误,哪里来的逗号。。。######回复 @新人王 :通的过,这个,,不是拼装吧######@张浩春 将出来的语句放入查询器查询,看是否能执行通过;然后再检查写的语句,没用过dbunit,拼装sql略显不靠谱。######。。。我也在想哪来的逗号,坑爹的啊######你搞错了吧。query第三个参数你这里要传数组吧。######回复 @我是潮汐 : 解决个屁啊,它的BUG,我没办法了,我现在换数据库######回复 @张浩春 : 额,我用的最新版,没过时。恭喜你解决问题。######回复 @我是潮汐 : 过时了,再说过不过时已经不重要了,我找到是sql server jdbc driver的BUG了######回复 @张浩春 : 你用的哪个版本?传数组的并没有过时啊。######问题不在这里,传数组的已经被丢弃了。现在是不定参数######可能变长参数有问题,试试传数组吧。######找到问题了,尼玛,是sqljdbc4.jar的问题,在dbutils里面有这样一个方法stm.getParameterMetaData();执行这个方法的时候出错了,也就是说是sql server 驱动的问题

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

相似问题
最新问题
推荐课程