请问用PreparedStatement处理带in的SQL语句到底应该怎么写

fuyingch 2009-03-27 04:03:03
问在oracle数据库中
SQL = "select * from table where modeCode in (?)";
..

PreparedStatement stmt = conn.preparedStatement(SQL);
stmt.setString(1, "param1,param2,param3");
rs = stmt.executeQuery();

上述语句执行后没有记录被得到,系统也没有报错,不知是什么问题。.因为IN 语句可以动态变化有多个条件,难道是设置入一个数组? 用PreparedStatement处理in的SQL语句到底应该怎么写谢谢
...全文
486 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sosohard 2009-12-04
  • 打赏
  • 举报
回复
苦苦寻找,无果。。。。。
Study_Work_2009 2009-03-28
  • 打赏
  • 举报
回复
有可能是条件不满足,仔细检查一下
xiguagege 2009-03-28
  • 打赏
  • 举报
回复
8楼正解
----------
JAVA技术文档里面给出的示例,相信你能看懂了
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00)
pstmt.setInt(2, 110592)
palm_civet 2009-03-28
  • 打赏
  • 举报
回复
想绑定in里面的变量只能用pl/sql,就是写存储过程
javaee_ssh 2009-03-28
  • 打赏
  • 举报
回复
那样写当然会抛异常

SQL = "select * from table where modeCode in ("+"param1,param2,param3"+")";
..

PreparedStatement stmt = conn.preparedStatement(SQL);
rs = stmt.executeQuery();

我就是这样用的
jsyz3838131 2009-03-28
  • 打赏
  • 举报
回复
参数不对
SQL = "select * from table where modeCode in (?,?,?)";
..

PreparedStatement stmt = conn.preparedStatement(SQL);
stmt.setString(1, parm1);
stmt.setString(2, parm2);
stmt.setString(3, parm3);
rs = stmt.executeQuery();
应该是这样的,in()里面是你的参数值,你用一个 ?那就等于 SQL = "select * from table where modeCode = ?";
fuyingch 2009-03-27
  • 打赏
  • 举报
回复
像in查询语句,每次查询in里面的参数个数可能不相同的,不知道用in查询的方式使用PreparedStatement和Statement谁的效率更高
zoutuo 2009-03-27
  • 打赏
  • 举报
回复
PreparedStatement是从1开始吗?PreparedStatement我没有用过,不清楚。但hibernate的起始位是从0开始的。
如有错,请原谅
zoutuo 2009-03-27
  • 打赏
  • 举报
回复
实在不行可以手动将内容放入一个数组或者集合中,然后每取出一个元素就加上一个逗号,当然是英文下的逗号。再循环体内加上一个判断:如果该循环为最后一次,那么不加逗号。可以用一个标志位来判断。
我不清楚PreparedStatement到底该如何写,但我认为这样应该能够解决您的问题。
abc130314 2009-03-27
  • 打赏
  • 举报
回复
你有 x 个参数,就拼凑含有 x 个 ?的SQL。
再 conn.preparedStatement(SQL);

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧