Java中QueryRunner的坑人问题,把我难倒了,谁帮个忙? 我的环境:Oracle + Java7 + MyEclipse2016

如果写成这样 : queryRunner.query("select * from dept where deptno in (?,?)", new BeanListHandler<T>(clazz),10,20);
就报这个错误 : java.sql.SQLException: Wrong number of parameters: expected 1, was given 2 Query: select * from dept where deptno in (?,?) Parameters: [10, 20]
如果写成这样 :queryRunner.query("select * from dept where deptno in (?,?)", new BeanListHandler<T>(clazz),10);
java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 2 Query: select * from dept where deptno in (?,?) Parameters: [10]

楼主可以这样试试
String sql = "select * from users where id=?";
Object params[] = {2};
User user = (User) qr.query(sql, params, new BeanHandler(User.class));

把输入参数包在一个对象数组里追问

你这个方法qr.query(sql, params, new BeanHandler(User.class));现在已经不推荐使用了,我改成这种形式也是不行的。
我也是通过Object数组进行传参,只是为了更加精简,这里是直接写上去的。
当然,写上去之前,已经打印输出就是这些值。

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-12-09
代码发我。我帮你看看。。

Java中QueryRunner的坑人问题,把我难倒了,谁帮个忙? 我的环境:Oracle +...
可能的问题在于参数的传递方式或者QueryRunner的配置不正确。确保你的参数类型与SQL中的占位符类型相匹配,同时检查QueryRunner实例是否已正确初始化,并配置了与你的数据库连接相关的信息。如果User类的字段名与查询中的列名不一致,BeanHandler可能无法正确映射数据。建议仔细检查SQL语句,确保参数化占位符与实际...

严重: Servlet.service() for servlet [jsp] in context with path...
java.lang.NoSuchMethodException这个异常的根本原因有两个:1、缺少某些jar文件.2、某些jar文件有重复。4、使用struts2框架出现的问题 在页面使用jquery ajax 调用action中的vaildUname方法,报错,说我的方法不存在。但实际是存在的。解决方法:1、检查提交的是不是这个action 。2、查查配置文件。3、检...

相似回答