jdbc 中prepareStatement对sql中的占位符赋值问题
答案:2 悬赏:70 手机版
解决时间 2021-03-17 04:29
- 提问者网友:孤凫
- 2021-03-16 21:43
比如 比如 select *from table where field in(?) and field2 = ? ; 其中第一个 ? 我想同时赋值两个值 ,类似 in( '12','13') ;怎么实现?
最佳答案
- 五星知识达人网友:青尢
- 2021-03-16 21:59
第一个问题: 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 = ?
全部回答
- 1楼网友:荒野風
- 2021-03-16 23:31
jdbc连接preparestatement里的方法setint或者setstring是根据sql语句里设置的,如果和sql语句里的类型没对应执行时,会报错。
1、可以通过调用 connection 对象的 preparedstatement() 方法获取 preparedstatement 对象;
2、preparedstatement 接口是 statement 的子接口,它表示一条预编译过的 sql 语句;
2、preparedstatement 对象所代表的 sql 语句中的参数用问号(?)来表示,
调用 preparedstatement 对象的 setxxx() 方法来设置这些参数. setxxx() 方法有两个参数;
第一个参数是要设置的 sql 语句中的参数的索引(从 1 开始),第二个是设置的 sql 语句中的参数的值。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯