L'énoncé.execute(sql) vs executeUpdate(sql) et executeQuery(sql)
J'ai une question par rapport à cette méthode: st.execute(sql);
où st est de toute évidence une Déclaration de l'objet.
Directement à partir de cette oracle java tutoriel:
exécuter: Retourne true si le premier objet que la requête renvoie un
Objet ResultSet. Utilisez cette méthode si la requête peut renvoyer un ou
plus d'objets ResultSet. Récupérer les objets ResultSet retourné à partir de
la requête à plusieurs reprises Instruction d'appel.getResutSet.
Ce que l'on entend par "un ou plusieurs objets ResultSet"? Comment est-il possible de les gérer une fois obtenu un tableau de ResultSet
?
Alors que st.executeQuery(sql)
et st.executeUpdate(sql)
sont très claires. Ce n'est pas (au moins pour moi) le but de st.execute(sql)
qui peut également renvoyer un int comme si il a été mis à jour une table.
Merci d'avance
Vous devez vous connecter pour publier un commentaire.
La javadoc de la
execute
méthode dit ceci:C'est à peu près l'explique. Parfois, une requête peut fournir plus d'un
ResultSet
.Je ne suis pas sûr de ce que vous voulez dire mais:
Une utilisation de
execute
est d'exécuter une instruction SQL si vous ne savez pas si c'est une requête, une mise à jour (de quelque sorte) ... ou quelque chose d'autre que potentiellement offre plusieurs jeux de résultats. C'est une généralisation deexecuteQuery()
etexecuteUpdate()
...boolean execute():
Exécute l'instruction SQL dans cette Déclaration de l'objet, qui peut être n'importe quelle instruction SQL.
ResultSet executeQuery():
Exécute la requête SQL de cette requête Préparée objet et retourne l'objet ResultSet généré par la requête.
int executeUpdate():
Exécute l'instruction SQL dans cette Déclaration de l'objet, qui doit être un SQL INSERT, UPDATE ou DELETE; ou une instruction SQL qui renvoie rien, comme une instruction DDL.
Le meilleur endroit pour trouver des réponses à des questions comme " c'est la Javadoc:
Ici