我正在使用JDBC,我必须将值数组设置为单个列, 我知道它在Hibernate和Ibatis中有效,但似乎很难让它运行Pure JDBC sql。
我有一个字符串值数组
names[] = new String[]{"A","B","C"};
和像
这样的查询select * from emp where name in(?)
我试过pstmt.setObject(1,名字),它不能正常工作..
答案 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 ) );