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