将标题重写为:通过获取ResultSet的id并将其作为java.sql.Array返回
P粉905144514
2023-09-03 18:10:50
<p>我有以下内容:</p>
<pre class="brush:scala;toolbar:false;"> def getIds(name: String): java.sql.Array = {
val ids: Array[Integer] = Array()
val ps: PreparedStatement = connection.prepareStatement("SELECT id FROM table WHERE name = ?")
ps.setString(1, name)
val resultSet = ps.executeQuery()
while(resultSet.next()) {
val currentId = resultSet.getInt(1)
ids :+ currentId
}
return connection.createArrayOf("INTEGER", ids.toArray)
}
</pre>
<p>我的意图是使用这个方法的输出放入另一个PreparedStatement中,使用<code>.setArray(1, <array>)</code></p>
<p>但是我得到了以下错误:<code>java.sql.SQLFeatureNotSupportedException</code></p>
<p>我正在使用MySQL。已经尝试了INTEGER,INT,BIGINT。但都没有成功。</p>
翻译后的内容为:
研究后发现:
所以我的解决方案是创建一个只包含id的临时表:
然后与其他语句/查询进行内连接,以达到相同的结果: