在PreparedStatement中,sql使用in操作符的问题

在使用PreparedStatement的时候突然发现给占位符“?”赋值之后查询出来的结果却为空,最后排查其原因是因为sql语句中使用in的问题如:

String ids=“‘001’,’002’,’003’,’004’”;
String sql=”select t.name from students t. where t.id in ( ? )”;
PreparedStatement ps=conn.getPreparedStatement(sql);
ps.setString(1,ids);
ResultSet rs=ps.excuteQuery();

最后发现查询出的结果为空的,估计是因为“?”被赋值之后在“in()”中的并不是形成了多列参数,而是把ids传入的值当做一个整体,所以查不出来想要的结果。
在使用到 in 操作符时,在有多列参数的时候建议使用Statement对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值