10 nov. 2008

Bonnes pratiques JDBC

Voici une liste de bonnes pratiques d'utilisation de l'API JDBC et généralement de l'accès aux données en JAVA et JEE :

- Utiliser un driver JDBC de type 4
- Séparer l’accès aux données de la couche métier (DAO)
- Utiliser un Framework ou une API de persistance

- Fermer les objets JDBC dans un bloc finally dans la même méthode (Connection, Statement, ResultSet)
- Utiliser un pool de connexion (en réutilisant celui du serveur d'application ou en utilisant celui de Apache : Commons-DBCP)
- Utiliser les instructions paramétrées (PreparedStatements) au lieu des instructions standards
- Limiter l’utilisation des instructions spécifiques au SGBD
- Spécifier la liste des colonnes dans les instructions Select et Insert
- Utiliser des objets Date, Time et Timestamp au lieu de String pour récupérer les valeurs temporelles
- Utiliser le bon niveau d’isolation des transactions
- Mettre setAutoCommit à false pour éviter des commit implicites à chaque instruction
- Pas de procédures stockées en langage propriétaire
- Utiliser getGeneratedKeys() pour récupérer les clés générées par la BD
- Utiliser un RowSet pour charger les données de paramétrage en cache
- Utiliser un Statement.setFetchSize(100) p.ex pour les requêtes qui retournent beaucoup de résultats
- Utiliser les MAJ en lot (batch updates)
- Utiliser Connection.setReadOnly(true) dans le cadre des modules en consultation seulement
- Utiliser Connection.releaseSavepoint() pour vider la pile des points de sauvegarde