Tulis semula tajuk kepada: Dengan mendapatkan id ResultSet dan mengembalikannya sebagai java.sql.Array
P粉905144514
2023-09-03 18:10:50
<p>Saya mempunyai yang berikut:</p>
<pre class="brush:scala;toolbar:false;"> def getIds(name: String): java.sql.Array = {
val id: Array[Integer] = Array()
val ps: PreparedStatement = connection.prepareStatement("PILIH id DARI jadual WHERE nama = ?")
ps.setString(1, nama)
val resultSet = ps.executeQuery()
while(resultSet.next()) {
val currentId = resultSet.getInt(1)
id :+ currentId
}
return connection.createArrayOf("INTEGER", id.toArray)
}
</pra>
<p>Niat saya adalah untuk menggunakan output kaedah ini ke dalam PreparedStatement yang lain, menggunakan <code>.setArray(1, <array>)</code></p>
<p>Tetapi saya mendapat ralat berikut: <code>java.sql.SQLFeatureNotSupportedException</code></p>
<p>Saya menggunakan MySQL. Sudah mencuba INTEGER, INT, BIGINT. Tetapi semuanya gagal. </p>
Kandungan yang diterjemahkan ialah:
Setelah meneliti, kami dapati:
Jadi penyelesaian saya ialah mencipta jadual sementara yang mengandungi hanya id:
Kemudian lakukan gabungan dalaman dengan pernyataan/pertanyaan lain untuk mencapai hasil yang sama: