BD Multimédia 7
Oracle Objet-relationnel et JBDC
Rappel des bases
Méthodes de l'interface Connection
createStatement Création d'un objet pour recevoir
un ordre SQL non paramétré
prepareStatement(String) Pré-compilation d'un ordre SQL
avec paramètres
prepareCall(String) Appel d'une procédure cataloguée
void setAutoCommit(boolean) Fixe la validation automatique
void commit() Valide la transaction
void rollBack() Invalide la transaction
void close() Ferme la connexion
BD Multimédia 8
Oracle Objet-relationnel et JBDC
Rappel des bases
Interfaces pour l'encapsulation d'ordres SQL en
Java
Statement : pour les ordres SQL statiques. Cet état
est construit par la méthode createStatement
appliquée à la connexion.
PreparedStatement pour les ordres paramétrés SQL,
construits par prepareStatement sur la connexion.
CallableStatement pour les procédures ou fonctions
cataloguées PL/SQL, C, java, etc., construit par la
méthode prepareCall sur la connexion.
BD Multimédia 9
Oracle Objet-relationnel et JBDC
Rappel des bases
Quand un état paramétré est créé, les paramètres sont
insérés par les méthodes génériques
setXXX (num_param, valeur)
setInt, setString, ...
Il existe les méthodes inverses, pour récupérer les
valeurs
getXXX
getInt, getString, ...
Et des méthodes
updateXXX depuis java vers Oracle. Mise à jour de la base via un
curseur java.
BD Multimédia 10
Oracle Objet-relationnel et JBDC
Rappel des bases
Méthodes de l'interface Statement
ResulSet executeQuery(String) Exécute une requête et renvoie un ensemble
de lignes
int executeUpdate(String) Exécute une instruction SQL (insert, update
ou delete) et renvoie le nombre de lignes
traitées.
boolean execute(String) Exécute une instruction SQL.
Connection getConnexion() Renvoie l'objet de la connexion.
void setMaxRows(int) Fixe le nombre max d'enregistrements à
extraire
int getUpdateCount() Nombre de lignes traitées par l'ordre SQL (ou
–1)
void close() Ferme l'état
BD Multimédia 11
Oracle Objet-relationnel et JBDC
Rappel des bases
Exemples
Statement st=conn.createStatement();
st.execute("INSERT INTO etudiant
VALUES('123','Dupont,'Paul')");
ResultSet res= st.executeQuery("SELECT * FROM etudiant");
Extraction des données du résultat (pour ResultSet)
Parcours : boolean next()
Fermeture du curseur : void close
Récupération des valeurs : getXXX(int)
Modification de l'enregistrement : updateXXX(...)
Métadonnées : ResultSetMetaData getMetaData()
BD Multimédia 12
Oracle Objet-relationnel et JBDC
Rappel des bases
Un curseur de type ResultSet est par défaut ni navigable, ni
modifiable.
Uniquement du début à la fin par next()
Il est possible de le rendre navigable
Déplacement avant, arrière, depuis le début, la fin ou la position
courante
Et modifiable
La base peut être modifiée par le curseur.
Création d’un curseur navigable et modifiable
Statement createStatement (int typeCur, int modifCur)
ResultSet.TYPE_SCROLL_INSENSITIVE (navigable, non sensible aux
modifications)
ResultSet.TYPE_SCROLL_SENSITIVE (navigable, sensible aux modifications)