java关于PreparedStatement,或者oracle的:1传值问题

我最近在开发中,遇到一个问题,我写的sql必须要用:1来传值,如果有两个输入参数(:1,:2)的时候set两次值是没有问题的,可是如果出现两个:1的时候,他还是set一次... 我最近在开发中,遇到一个问题,我写的sql必须要用:1来传值,如果有两个输入参数(:1,:2)的时候set两次值是没有问题的,可是如果出现两个:1的时候,他还是set一次值,这个时候就报java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 2,怎么办,在线等
我的sql类似这种:select * from dual where '1'=:1 and '1'=:1,这两个:1是传一个值
展开
 我来答
说十做九
2015-05-20
知道答主
回答量:18
采纳率:0%
帮助的人:16.1万
展开全部
String sql="select * from dual where '1'=? and '1' = ?";

PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, 1);
preparedStatement.setInt(2, 1);
ResultSet rst = preparedStatement.executeQuery();
追问
这样不行,这两个:1是同一个值,所以在传值的时候就传了一个,然后set的时候是根据传入的参数个数判断的set几个,所以就少了一个
追答
我觉得有两种方式:1,传值的时候传两个
2:判断sql语句里面的“?”有多少个,如果?的个数大于了传参的个数,那么你可以将你传入过来的参数重做,变成有两个参数的变量
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式