Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

50 questions essentielles d'entretien JDBC et réponses d'experts (2026)

50 questions essentielles d entretien JDBC et réponses d experts (2026)

Se préparer à un entretien JDBC nécessite une compréhension approfondie de la connectivité des bases de données, du réglage des performances et des meilleures pratiques en matière de sécurité. Les 50 questions suivantes couvrent des concepts de base et des scénarios du monde réel auxquels les recruteurs donnent la priorité.

👉 Téléchargement gratuit du PDF :Questions et réponses pour l'entretien JDBC

1) Qu'est-ce que JDBC et pourquoi est-il important dans les applications Java ?

JDBC (Java Database Connectivity) est l'API principale qui permet aux programmes Java d'interagir avec les bases de données relationnelles. Il standardise l'exécution SQL, la gestion des résultats et le contrôle des transactions, permettant aux développeurs d'écrire du code indépendant des bases de données qui peut basculer entre MySQL, Oracle, PostgreSQL et autres avec un minimum de modifications.

2) Quels sont les quatre types de pilotes JDBC et leurs principales différences ?

3) Décrire le cycle de vie d'un programme JDBC.

  1. Chargez le pilote :Class.forName("com.mysql.cj.jdbc.Driver")
  2. Établir un Connection via DriverManager ou un DataSource .
  3. Créer un Statement , PreparedStatement , ou CallableStatement .
  4. Exécuter le SQL (requête, mise à jour ou procédure).
  5. Traiter le ResultSet le cas échéant.
  6. Fermez toutes les ressources (préférez try‑with‑resources ).

4) Quand devez-vous utiliser Statement, PreparedStatement ou CallableStatement ?

5) Comment gérez-vous les transactions dans JDBC ?

  1. Désactiver la validation automatique :conn.setAutoCommit(false)
  2. Exécuter plusieurs instructions.
  3. En cas de réussite, conn.commit(); en cas d'échec, conn.rollback() .

Utilisez ce modèle pour les opérations atomiques telles que les transferts de fonds.

6) Quels sont les avantages et les inconvénients du pooling de connexions JDBC ?

Les frameworks comme HikariCP et Apache DBCP sont des standards de l'industrie.

7) Distinguer exécuter(), exécuterQuery() et exécuterUpdate().

8) Quelles stratégies améliorent les performances de JDBC ?

9) Expliquer les mises à jour par lots dans JDBC.

PreparedStatement ps = conn.prepareStatement("INSERT INTO student VALUES(?,?)");
for(int i=1;i<=1000;i++){
  ps.setInt(1,i);
  ps.setString(2,"Name"+i);
  ps.addBatch();
}
ps.executeBatch();

Réduit les allers-retours et augmente le débit.

10) Quel rôle joue ResultSet ?

ResultSet contient les résultats de la requête. Il peut être avancé uniquement, défilable ou mis à jour en fonction des indicateurs de création.

11) Comparez JDBC et ODBC.

12) Identifiez les composants de l'architecture JDBC.

  1. API JDBC (connexion, instruction, ResultSet).
  2. Gestionnaire de pilotes (enregistre les pilotes).
  3. Implémentations de pilotes (types 1 à 4).
  4. Backend de base de données.

13) Expliquez ResultSetMetaData par rapport à DatabaseMetaData.

14) Comment utiliser les points de sauvegarde ?

conn.setAutoCommit(false);
Savepoint sp = conn.setSavepoint("sp1");
// operations
conn.rollback(sp); // partial rollback
conn.commit();

15) Définir RowSet et ses variantes.

16) Comment JDBC gère-t-il les exceptions SQL ?

SQLException fournit getErrorCode() , getSQLState() , et getMessage() . Connectez-vous toujours et revenez en arrière en cas d'échec.

17) Qu'est-ce que le traitement par lots ?

Regroupez plusieurs instructions DML en un seul aller-retour ; utilisez addBatch() et executeBatch() .

18) Répertoriez à nouveau les types d'instructions.

19) Gestion efficace des connexions.

Préférez DataSource avec mutualisation des connexions. Utilisez try‑with‑resources pour un nettoyage automatique.

20) Déclaration JDBC par rapport à la session Hibernate.

21) Récupérer les clés générées automatiquement.

PreparedStatement ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();

22) Gestion des BLOB et CLOB.

23) Rendre ResultSet défilant/mis à jour.

Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEE");
rs.absolute(3);
rs.updateString("name", "UpdatedName");
rs.updateRow();

24) DataSource contre DriverManager.

25) Traitement par lots avec PreparedStatement.

for(int i=1;i<=5;i++){
  ps.setInt(1,i);
  ps.setString(2,"Student"+i);
  ps.addBatch();
}
ps.executeBatch();

26) Utilisation de DatabaseMetaData.

DatabaseMetaData dbmd = conn.getMetaData();
System.out.println("DB: " + dbmd.getDatabaseProductName());

27) Récapitulatif des variantes d'exécution.

28) Fermeture des ressources JDBC.

try (Connection c = ds.getConnection();
     Statement s = c.createStatement();
     ResultSet rs = s.executeQuery("SELECT * FROM EMPLOYEE")) {
  while(rs.next()){ /* process */ }
}

29) Optimisations courantes des performances.

30) Appel de procédures stockées.

CallableStatement cs = conn.prepareCall("{call getEmployeeSalary(?)}");
cs.setInt(1,101);
ResultSet rs = cs.executeQuery();

31) Éléments internes du regroupement de connexions JDBC.

Au démarrage, un pool crée un ensemble fixe de connexions. Les requêtes empruntent une connexion ; le renvoie après utilisation, en gardant les ressources en mémoire.

32) Configurez HikariCP.

HikariConfig cfg = new HikariConfig();
cfg.setJdbcUrl("jdbc:mysql://localhost:3306/testdb");
cfg.setUsername("root");
cfg.setPassword("pw");
cfg.setMaximumPoolSize(10);
HikariDataSource ds = new HikariDataSource(cfg);

33) DriverManager contre DataSource.

34) Causes courantes « Aucun pilote approprié trouvé ».

35) Empêcher l'injection SQL.

36) JDBC contre ORM (Hibernate).

37) Journalisation des requêtes SQL.

38) Multithreading sécurisé avec JDBC.

39) JDBC dans Spring / Spring Boot.

Le JdbcTemplate du printemps gère automatiquement le passe-partout, la traduction des exceptions et le regroupement de connexions.

40) États de connexion JDBC.

41) Récapitulatif des types de pilotes.

42) Niveaux d'isolement des transactions.

43) Transactions distribuées (XA).

44) Profilage des performances JDBC.

45) Prévention des fuites de mémoire JDBC.

46) JDBC pour microservices/cloud.

47) Gestion gracieuse des échecs de connexion.

for(int i=0;i<3;i++){
  try(Connection c=ds.getConnection()){ break; }
  catch(SQLTransientConnectionException e){ Thread.sleep(1000*(i+1)); }
}

48) Différences de validation, de restauration et de point de sauvegarde.

49) Utilité des métadonnées JDBC.

50) Bonnes pratiques pour JDBC d'entreprise.

  1. Utilisez DataSource avec mutualisation.
  2. Préférer PreparedStatement .
  3. Gérez les transactions avec une isolation appropriée.
  4. Opérations par lots et pagination.
  5. Enregistrer et surveiller les requêtes.
  6. Gérez efficacement les exceptions et les tentatives.

🔍 Principales questions d'entretien JDBC avec des scénarios du monde réel et des réponses stratégiques

Vous trouverez ci-dessous 10 questions d'entretien JDBC soigneusement élaborées, avec ce que les enquêteurs attendent et des exemples de réponses solides.

1) Qu'est-ce que JDBC et pourquoi est-il important ?

Réponse attendue : JDBC est l'API Java pour l'accès aux bases de données ; il résume l'exécution SQL, la gestion des résultats et les transactions, permettant ainsi un code indépendant de la base de données.

2) Expliquer les types de pilotes JDBC.

Réponse attendue : Quatre types :pont JDBC‑ODBC, API native, protocole réseau, pilote léger. Le type 4 est le plus courant aujourd'hui.

3) Comment gérer efficacement les connexions ?

Réponse attendue : Utilisez des pools de connexions comme HikariCP ; évitez d'ouvrir/fermer des connexions par demande.

4) Instruction Distinguer, PreparedStatement et CallableStatement.

Réponse attendue : Instruction – SQL statique ; PreparedStatement – ​​paramétré, empêche l'injection ; CallableStatement – procédures stockées.

5) Décrivez une optimisation des performances JDBC que vous avez effectuée.

Réponse attendue : Remplacement de la concaténation de chaînes par PreparedStatement, introduction du pooling et utilisation des insertions par lots ; temps de réponse réduit de 40 %.

6) Comment empêcher l'injection SQL ?

Réponse attendue : Utilisez PreparedStatement ; valider la saisie ; limiter les privilèges de la base de données.

7) Résoudre un échec de connexion JDBC.

Réponse attendue : Vérifiez l'URL, les informations d'identification, le réseau, le fichier jar du pilote ; examiner les journaux ; Corrigez le port mal configuré.

8) Gérer les transactions dans JDBC.

Réponse attendue : Désactivez la validation automatique, effectuez des opérations, validez ou annulez en fonction du résultat ; garantit la conformité ACID.

9) Résolvez un problème de base de données difficile avec JDBC.

Réponse attendue : Implémentation du traitement par lots pour les insertions en vrac, réduisant le temps de quelques minutes à quelques secondes.

10) Donner la priorité aux améliorations de JDBC dans des délais serrés.

Réponse attendue : Évaluez l'impact, communiquez clairement, abordez d'abord les éléments à fort impact, collaborez pour respecter les SLA.

Java

  1. Exemple For-Each :boucle for améliorée pour itérer le tableau Java
  2. Comment convertir facilement une chaîne en entier en JAVA
  3. Interface Java ListIterator
  4. Classe Java FileWriter
  5. Méthode Java String endsWith () avec exemple
  6. Java - Opérateurs de base
  7. Java Hello World :comment écrire votre premier programme Java avec un exemple
  8. Classe de lecteur Java
  9. Java 8 - Classe facultative