
La FAQ JDBCConsultez toutes les FAQ
Nombre d'auteurs : 4, nombre de questions : 158, dernière mise à jour : 17 mai 2009
Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums java de www.developpez.com et de l'expérience personnelle des auteurs. Je tiens à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font le maximum, mais l'erreur est humaine.
Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez les modalités de participation.
Bonne lecture à tous,
FAQ lues fois.
Table des matières
1. Introduction
(4)
2. Généralités
(8)
- Qu'est-ce que JDBC ?
- Quelques définitions utiles avant de commencer : SQL, ODBC, SGBDR
- Que peut on faire avec JDBC ?
- A quels SGBDR puis-je me connecter avec JDBC ?
- Architecture générale de JDBC.
- Quelles sont les différences entre JDBC 1.0, 2.0 et 3.0 ?
- Ou trouver plus d'informations sur JDBC ?
- Ou trouver plus d'informations sur SQL et les SGBDR ?
3. Les pilotes - Drivers
(9)
- Qu'est-ce qu'un driver ?
- Quels sont les différents types de driver JDBC ?
- Quel(s) driver(s) utiliser ?
- Ou trouver des drivers ?
- Comment charger un driver ?
- Comment connaître les drivers disponibles à partir d'une application ?
- Comment obtenir des informations sur un Driver donné, à partir de l'application ?
- Comment rediriger les logs du DriverManager ?
- Comment définir le temps d'attente pour une connexion ?
4. La connexion
(5)
5. Sources de données - DataSources
(7)
6. Les instructions - Statement
(24)
6.1. Généralités
(12)
- Comment créer un Statement ?
- Comment exécuter un Statement ?
- Que renvoie l'exécution d'un Statement ?
- Peut-on créer une requête spécifique à un SGBDR ?
- Je n'ai pas d'exception, mais la méthode executeXXX ne fais pas ce que je veux ?
- Comment gérer le timeout de l'exécution d'une instruction ?
- Comment récupérer un ResultSet lors de l'utilisation de la méthode execute ?
- Comment limiter le nombre de lignes des ResultSet renvoyées par l'instruction ?
- Comment récupérer plusieurs ResultSet depuis le Statement ?
- Comment récupérer les clefs auto-générées par l'exécution du Statement ?
- Qu'est-ce que la syntaxe d'échappement ?
- Doit on fermer un Statement ?
6.2. Les instructions paramétrées - PreparedStatement
(5)
6.3. Les procédures stockées et fonctions - CallableStatement
(7)
- Qu'est-ce qu'un CallableStatement ?
- Comment créer un CallableStatement ?
- Comment passer les paramètres à la procédure (IN parameter) ?
- Comment récupérer le résultat d'une procédure stockée (OUT parameter) ?
- Comment spécifier un paramètre de type INOUT ?
- Comment appeler une fonction ?
- Comment savoir qu'un paramètre de retour(OUT) est de type SQL NULL ?
7. Les résultats - ResultSet
(15)
- Qu'est-ce qu'un ResultSet ? Que sont les lignes, les colonnes et le curseur ?
- Quels sont les différents types de ResultSet ?
- Comment retrouver les valeurs contenues dans un ResultSet ?
- Comment obtenir la valeur la plus récente d'une ligne ?
- Comment savoir si une valeur correspond au type SQL NULL ?
- Comment parcourir un ResultSet ?
- Comment déplacer le curseur sur une ligne précise ?
- Comment connaître la position du curseur ?
- Comment mettre à jour un ResultSet ?
- Comment insérer une ligne dans un ResultSet ?
- Doit on fermer un ResultSet ?
- Comment connaître les caractéristiques (type) d'un ResultSet depuis le programme ?
- Comment supprimer une ligne dans un ResultSet ?
- Comment retrouver l'index d'une colonne à partir de son nom ?
- Que sont les fetch size et fetch direction ?
8. Les RowSet
(24)
8.1. Généralités
(6)
8.2. Les RowSet déconnectés (CachedRowSet, etc.)
(10)
- Comment fonctionnent les RowSet déconnectés ?
- Comment reconnecter un RowSet déconnecté ?
- Comment valider les modifications d'un RowSet déconnecté ?
- Comment gérer les conflits durant la validation des modifications ?
- Comment détecter les modifications d'un RowSet déconnecté ?
- Comment annuler les modifications d'un RowSet déconnecté ?
- Quel est le nombre de lignes d'un RowSet déconnecté ?
- Comment traiter de grandes quantités de données ?
- Comment vider complètement un RowSet déconnecté ?
- Quels types de copies peut on faire à partir d'un RowSet déconnecté ?
8.3. Les WebRowSet
(3)
8.4. Les FilteredRowSet
(3)
8.5. Les JoinRowSet
(2)
9. Les transactions
(8)
- Que sont les transactions ?
- Comment et quand annuler une transaction ?
- Que sont les niveaux d'isolation des transactions ?
- Comment faire des mises à jour groupées, ou Batch Updates ?
- Que renvoie l'exécution d'un batch ?
- Comment gérer les exceptions lors d'un batch ?
- Comment utiliser des points de sauvegarde dans les transactions ?
- Comment savoir si le driver supporte les transactions ?
10. Les types SQL et les types Java
(11)
- Tableau de relations
- Comment obtenir une instance de java.sql.Date, Time ou Timestamp ?
- A quoi correspond le type DISTINCT ?
- Quelles sont les relations entre tableau et java.sql.Array ?
- Qu'est ce qu'un LOB ?
- Comment insérer un BLOB dans une base de données ?
- Comment lire un BLOB dans une base de données ?
- Comment insérer un CLOB dans une base de données ?
- Comment lire un CLOB dans une base de données ?
- Comment faire une recherche dans un CLOB ?
- Comment faire la relation entre un UDT et un Object Java ?
11. Les méta-données - MetaData
(22)
11.1. Généralités et informations sur le SGBD
(11)
- Que sont les méta-données ?
- Comment connaître le nom et la version du SGBD utilisé ?
- Quels sont les catalogues du SGBD utilisé ?
- Quelles sont les normes SQL supportées par le SGBD ?
- Comment connaître les types SQL supportés par la base de données ?
- Comment obtenir la liste des mots clefs SQL non standard d'un SGBDR ?
- Comment obtenir la liste des fonctions (numériques, système, etc.) ?
- Comment avoir la liste de toutes les procédures stockées dans une base de données ?
- Comment connaître les caractéristiques d'une procédure stockée ?
- Quels sont les 'maximums' supportés par le SGBD ?
- Quelles sont les noms et versions du driver utilisé ?
11.2. Informations sur les tables
(5)
- Comment récupérer les noms des tables d'une base de données ?
- Comment récupérer les clefs primaires d'une table ?
- Comment récupérer des informations sur les colonnes d'une table ?
- Comment connaître les droits de l'utilisateur sur une table ?
- Comment récupérer des informations sur les index d'une table ?
11.3. Informations sur les ResultSet
(6)
- Comment connaître le nombre de lignes/colonnes d'un ResultSet ?
- Comment récupérer les noms des colonnes d'un ResultSet ?
- Comment récupérer les types SQL et Java des colonnes d'un ResultSet ?
- Quelles informations peut-on avoir sur les colonnes de type numérique d'un ResultSet ?
- A quelle table correspond la colonne x de mon ResultSet ?
- Quels types de ResultSet supporte le Driver ?
12. La gestion des erreurs
(4)
13. Mapping O/R, frameworks de persistance et autres API
(13)
13.1. Généralités
(3)
13.2. JDO
(3)
13.3. DbUtils
(7)
- Le QueryRunner peut-il utiliser un objet DataSource ?
- Peut-on utiliser des PreparedStatement avec le QueryRunner ?
- Quel est le format du fichier de requêtes utilisé par le QueryLoader ?
- Pourquoi le QueryLoader ne peut charger mon fichier de requêtes ?
- Quels sont les types de ResultSetHandler ?
- Quel type d'objet peut renvoyer un ResultSetHandler ?
- Pourquoi certains champs renvoyés par le Bean(List)Handler sont null alors que la base contient des données ?
14. Divers
(4)















