![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
jdbc 中prepareStatement对sql中的占位符赋值问题 10
比如比如select*fromtablewherefieldin(?)andfield2=?;其中第一个?我想同时赋值两个值,类似in('12','13');怎么实现?...
比如 比如 select *from table where field in(?) and field2 = ? ; 其中第一个 ? 我想同时赋值两个值 ,类似 in( '12','13') ;怎么实现?
展开
展开全部
第一个问题: prepareStatement 传递值
prepareStatement.setObject(序号,值)需要依据数据库而定,有得从1开始,有得从 0开始。
Oracle,MySQL从 0 开始。
prepareStatement.setObject(1,12);
prepareStatement.setObject(2,13);
第二个:(?) 表示只有一个参数,等价于select *from table where field=? ,如果in 的范围中有第二个值,你那个SQL就玩不转了。建议你拼写在SQL 中select *from table where field in(12,13....) and field2 = ?
prepareStatement.setObject(序号,值)需要依据数据库而定,有得从1开始,有得从 0开始。
Oracle,MySQL从 0 开始。
prepareStatement.setObject(1,12);
prepareStatement.setObject(2,13);
第二个:(?) 表示只有一个参数,等价于select *from table where field=? ,如果in 的范围中有第二个值,你那个SQL就玩不转了。建议你拼写在SQL 中select *from table where field in(12,13....) and field2 = ?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询