首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将数组列表用作预准备语句参数

如何将数组列表用作预准备语句参数
EN

Stack Overflow用户
提问于 2013-07-25 02:38:31
回答 2查看 119.6K关注 0票数 38

对于下面的挑战,我已经寻找了答案,但一直无法找到答案。这看起来很简单,但我一直无法解决它。

我有一个类型为Long -> ArrayList<Long>的记录I的ArrayList。我想使用此记录I列表从另一个表中选择行。到目前一切尚好。现在开始挑战..。

a)我使用一条准备好的语句从表中选择数据,并使用ArrayList作为输入。

代码语言:javascript
复制
selectPS = dbConnection.prepareStatement("select columnA from tableA where id in ?");

上面的问题-参数应该如何定义?对于ArrayList类型参数,上面的说明似乎不正确。

b)在设置预准备语句的参数值时,我也遇到了问题。没有设置ArrayList类型值的方法,我也看不到其他可行的选择。

代码语言:javascript
复制
---> selectPS.set?????(1, arraylistParameter);
     ResultSet rs = selectPS.executeQuery(); 

我非常感谢你能给我提供的任何帮助或方向。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-25 02:43:22

您可能需要使用下面的javadoc中提到的setArray方法:

http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html#setArray(int, java.sql.Array)

示例代码:

代码语言:javascript
复制
PreparedStatement pstmt = 
                conn.prepareStatement("select * from employee where id in (?)");
Array array = conn.createArrayOf("VARCHAR", new Object[]{"1", "2","3"});
pstmt.setArray(1, array);
ResultSet rs = pstmt.executeQuery();
票数 66
EN

Stack Overflow用户

发布于 2014-11-13 12:18:22

为什么要让生活变得艰难-

代码语言:javascript
复制
PreparedStatement pstmt = conn.prepareStatement("select * from employee where id in ("+ StringUtils.join(arraylistParameter.iterator(),",") +)");
票数 -24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17842211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档