Réécrivez le titre comme suit : En obtenant l'identifiant du ResultSet et en le renvoyant sous la forme d'un java.sql.Array
P粉905144514
2023-09-03 18:10:50
<p>J'ai les éléments suivants :</p>
<pre class="brush:scala;toolbar:false;"> def getIds(nom : String) : java.sql.Array = {
identifiants de valeur : Array[Integer] = Array()
val ps : PreparedStatement = connection.prepareStatement("SELECT id FROM table WHERE name = ?")
ps.setString(1, nom)
val resultSet = ps.executeQuery()
while(resultSet.next()) {
val currentId = resultSet.getInt(1)
identifiants :+ identifiant actuel
}
return connection.createArrayOf("INTEGER", ids.toArray)
}
≪/pré>
<p>Mon intention est d'utiliser la sortie de cette méthode dans un autre PreparedStatement, en utilisant <code>.setArray(1, <array>)</code></p>
<p>Mais j'obtiens l'erreur suivante : <code>java.sql.SQLFeatureNotSupportedException</code></p>
<p>J'utilise MySQL. Déjà essayé INTEGER, INT, BIGINT. Mais tout a échoué. </p>
Le contenu traduit est :
Après recherches, nous avons trouvé :
Ma solution a donc été de créer une table temporaire contenant uniquement les identifiants :
Ensuite, effectuez une jointure interne avec d'autres instructions/requêtes pour obtenir le même résultat :