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 d'entretien JDBC essentielles & Réponses expertes (2026)

50 Questions d entretien JDBC essentielles & Réponses expertes (2026)

Se préparer à un entretien JDBC exige une maîtrise approfondie de la connectivité base de données, l'optimisation performance et les meilleures pratiques sécurité. Les 50 questions suivantes couvrent concepts core et scénarios réels que recruteurs privilégient.

👉 Téléchargement gratuit PDF : Questions & Réponses d'entretien JDBC

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

JDBC (Java Database Connectivity) est l'API core permettant aux programmes Java d'interagir avec bases de données relationnelles. Elle standardise exécution SQL, gestion résultats et contrôle transactions, permettant aux développeurs d'écrire code database-agnostique pouvant basculer entre MySQL, Oracle, PostgreSQL et autres avec modifications minimales.

2) Quels sont les quatre types de drivers JDBC et leurs différences clés ?

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

  1. Charger le driver : Class.forName("com.mysql.cj.jdbc.Driver")
  2. Établir Connection via DriverManager ou DataSource.
  3. Créer Statement, PreparedStatement ou CallableStatement.
  4. Exécuter SQL (requête, mise à jour, ou procédure).
  5. Traiter ResultSet si applicable.
  6. Fermer toutes ressources (préférer try-with-resources).

4) Quand utiliser Statement, PreparedStatement ou CallableStatement ?

5) Comment gérer transactions en JDBC ?

  1. Désactiver auto-commit : conn.setAutoCommit(false)
  2. Exécuter multiples instructions.
  3. Si succès, conn.commit() ; si échec, conn.rollback().

Utilisez ce pattern pour opérations atomiques comme transferts de fonds.

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

Frameworks comme HikariCP et Apache DBCP sont standards industrie.

7) Différencier execute(), executeQuery() et executeUpdate().

8) Quelles stratégies améliorent performance JDBC ?

9) Expliquez mises à jour par lots (batch updates) en 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 allers-retours et booste débit.

10) Quel rôle joue ResultSet ?

ResultSet contient résultats requête. Peut être forward-only, scrollable, ou updatable selon drapeaux création.

11) Comparer JDBC et ODBC.

12) Identifiez composants architecture JDBC.

  1. JDBC API (Connection, Statement, ResultSet).
  2. Driver Manager (enregistre drivers).
  3. Implémentations drivers (Types 1-4).
  4. Backend base de données.

13) Expliquez ResultSetMetaData vs DatabaseMetaData.

14) Comment utiliser Savepoints ?

conn.setAutoCommit(false); Savepoint sp = conn.setSavepoint("sp1"); // opérations conn.rollback(sp); // rollback partiel conn.commit();

15) Définissez RowSet et ses variantes.

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

SQLException fournit getErrorCode(), getSQLState() et getMessage(). Toujours logger et rollback en cas d'échec.

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

Grouper multiples instructions DML en un seul aller-retour ; utiliser addBatch() et executeBatch().

18) Lister types d'instructions à nouveau.

19) Gestion connexions efficace.

Préférer DataSource avec pooling connexions. Utiliser try-with-resources pour nettoyage auto.

20) JDBC Statement vs Session Hibernate.

21) Récupérer clés auto-générées.

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

22) Gestion BLOB et CLOB.

23) Rendre ResultSet scrollable/updatable.

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 vs 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 DatabaseMetaData.

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

27) Récap variantes execute.

28) Fermeture ressources JDBC.

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

29) Optimisations performance courantes.

30) Appel procédures stockées.

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

31) Internes pooling connexions JDBC.

À l'init, un pool crée ensemble fixe connexions. Requêtes empruntent connexion ; la retournent après usage, gardant ressources en mémoire.

32) Configurer 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 vs DataSource.

34) Causes courantes « No suitable driver found ».

35) Prévenir injection SQL.

36) JDBC vs ORM (Hibernate).

37) Journalisation requêtes SQL.

38) Multithreading sûr avec JDBC.

39) JDBC dans Spring / Spring Boot.

JdbcTemplate de Spring gère boilerplate, traduction exceptions, et pooling connexions automatiquement.

40) États connexion JDBC.

41) Récap types drivers.

42) Niveaux isolation transaction.

43) Transactions distribuées (XA).

44) Profilage performance JDBC.

45) Prévenir fuites mémoire JDBC.

46) JDBC pour microservices/cloud.

47) Gestion gracieuse échecs 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 commit, rollback et savepoint.

49) Utilité métadonnées JDBC.

50) Meilleures pratiques JDBC entreprise.

  1. Utiliser DataSource avec pooling.
  2. Préférer PreparedStatement.
  3. Gérer transactions avec isolation appropriée.
  4. Opérations par lots et pagination.
  5. Logger et monitorer requêtes.
  6. Gérer gracieusement exceptions et retries.

🔍 Top Questions d'entretien JDBC avec Scénarios Réels & Réponses Stratégiques

Voici 10 questions d'entretien JDBC soigneusement élaborées, avec attentes recruteurs et réponses exemples fortes.

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

Réponse attendue : JDBC est l'API Java pour accès BDD ; elle abstrait exécution SQL, gestion résultats et transactions, permettant code database-agnostique.

2) Expliquez types drivers JDBC.

Réponse attendue : Quatre types : Pont JDBC-ODBC, API Native, Protocole Réseau, Driver Thin. Type 4 le plus courant aujourd'hui.

3) Comment gérez-vous efficacement les connexions ?

Réponse attendue : Utiliser pools connexions comme HikariCP ; éviter ouverture/fermeture connexions par requête.

4) Différencier Statement, PreparedStatement et CallableStatement.

Réponse attendue : Statement – SQL statique ; PreparedStatement – paramétré, prévient injection ; CallableStatement – procédures stockées.

5) Décrivez optimisation performance JDBC réalisée.

Réponse attendue : Remplacé concaténation chaînes par PreparedStatement, introduit pooling, utilisé insertions par lots ; réduit temps réponse 40%.

6) Comment prévenir injection SQL ?

Réponse attendue : Utiliser PreparedStatement ; valider entrée ; limiter privilèges BDD.

7) Dépanner échec connexion JDBC.

Réponse attendue : Vérifier URL, identifiants, réseau, driver jar ; examiner logs ; corriger port mal configuré.

8) Gérer transactions en JDBC.

Réponse attendue : Désactiver auto-commit, effectuer opérations, commit ou rollback selon résultat ; assure conformité ACID.

9) Résoudre problème BDD difficile avec JDBC.

Réponse attendue : Implémenté traitement par lots pour insertions massives, réduisant temps de minutes à secondes.

10) Prioriser améliorations JDBC sous délais serrés.

Réponse attendue : Évaluer impact, communiquer clairement, traiter items haut-impact en premier, collaborer pour respecter SLA.

Java

  1. Maîtriser ConcurrentMap de Java : Maps Thread-Safe Expliquées
  2. Surcharge de Constructeur en Java – Expliqué avec Exemples de Code Pratiques
  3. Tutoriel Java Arrays : Déclaration, création et initialisation – Code d'exemple
  4. Java 9 : Nouvelles méthodes pour la classe Optional
  5. Maîtriser les expressions lambda Java : Des bases à l'API Stream
  6. Top 25 des questions d'entretien Scala & réponses – Guide PDF
  7. Maîtriser OutputStreamWriter de Java : Conversion caractères-octets avec exemples
  8. Classe Java HashSet : Guide Complet sur les Opérations, Méthodes et Théorie des Ensembles
  9. Maîtriser le Mot-Clé 'this' en Java : But, Utilisation et Exemples Pratiques