2.1 Pr´eparer la couche des outils
L’objectif de cette classe est d’offrir une s´erie d’outils afin de faciliter l’´ecriture des classes DAO.
•Commencez par cr´eer dans la classe JdbcTools les propri´et´es, les setters et les getters pour repr´esenter
le nom du pilote, l’URL de connexion, l’identifiant et le mot de passe.
•Cr´eez ensuite dans la classe JdbcTools les deux m´ethodes ci-dessous et pr´evoyez un test unitaire de ces
m´ethodes (dans JdbcToolsTest ).
public void init() { ... }
public void close() { ... }
•Cr´eez ensuite dans la classe JdbcTools les deux m´ethodes de cr´eation/destruction des connexions.
Pr´evoyez un test unitaire de ces m´ethodes (dans JdbcToolsTest ).
public Connection newConnection() throws SQLException { ... }
public void quietClose(Connection c) { ... }
•Vous pouvez maintenant ajouter la m´ethode executeUpdate qui va vous offrir un moyen simple de
d´etruire ou cr´eer des tables et des lignes.
public int executeUpdate(String query) throws SQLException { ... }
Cette m´ethode doit avoir la structure ci-dessous. Il est tr`es important de bien capter les exceptions afin
de lib´erer la connexion.
try {
// cr´eer une connexion
// pr´eparer l’instruction
// ex´ecuter l’instruction
} catch (SQLException e) {
// renvoyer cette exception
}
} finally {
// fermer la connexion
}
•Nous aurons souvent besoin de param´etrer l’ex´ecution d’une mise `a jour. Pour ce faire, ajoutez `a la m´ethode
pr´ec´edente une s´erie d’arguments. Cette nouvelle version est bas´ee sur l’utilisation des PreparedStatement .
public int executeUpdate(String sql, Object... parameters)
throws SQLException { ... }
Attention : vous devrez, pour chaque param`etre, ´etudier sont type pour utliser la m´ethode setType la
plus appropri´ee (contentez-vous d’´etudier les cas num´eriques et chaˆınes de caract`eres).
2.2 Try-with-ressources de java 7
A partir de java 7 nous pouvons simplifier la gestion des connexions en utilisant le Try-with-ressources 7. Utilisez
ce principe pour simplifier la structure de la m´ethode executeUpdate pr´ec´edente en supprimant la clause
finally .
7. http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
2