Schreiben Sie den Titel um: Indem Sie die ID des ResultSet abrufen und als java.sql.Array zurückgeben
P粉905144514
2023-09-03 18:10:50
<p>Ich habe Folgendes:</p>
<pre class="brush:scala;toolbar:false;"> def getIds(name: String): java.sql.Array = {
Gültige 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 :+ aktuelleId
}
return Connection.createArrayOf("INTEGER", ids.toArray)
}
</pre>
<p>Meine Absicht ist es, die Ausgabe dieser Methode in einem anderen PreparedStatement zu verwenden, indem ich <code>.setArray(1, <array>)</code></p> verwende.
<p>Aber ich erhalte die folgende Fehlermeldung: <code>java.sql.SQLFeatureNotSupportedException</code></p>
<p>Ich verwende MySQL. Habe INTEGER, INT, BIGINT bereits ausprobiert. Aber alles scheiterte. </p>
翻译后的内容为:
研究后发现:
所以我的解决方案是创建一个只包含id的临时表:
然后与其他语句/查询进行内连接,以达到相同的结果: