将值数组设置为SQL查询

时间:2012-01-26 16:41:43

标签: jdbc

我正在使用JDBC,我必须将值数组设置为单个列, 我知道它在Hibernate和Ibatis中有效,但似乎很难让它运行Pure JDBC sql。

我有一个字符串值数组

names[] = new String[]{"A","B","C"};

和像

这样的查询
select * from emp where name in(?)

我试过pstmt.setObject(1,名字),它不能正常工作..

2 个答案:

答案 0 :(得分:1)

纯JDBC不支持此功能。您必须生成一个查询,以便in子句包含数组中每个元素的一个占位符。

Spring的JDBC帮助器类支持命名参数以及您想要做的事情。

答案 1 :(得分:0)

这将使用以下语法:

"SELECT * FROM emp WHERE name IN ( SELECT column_value FROM TABLE( ? ) )"

pmst.setArray( 1, conn.createArrayOf( "VARCHAR", names ) );