top 25 jdbc interview questions
Ce didacticiel fournit les questions et réponses fréquemment posées lors de l'entretien JDBC avec des explications pour vous aider à vous préparer à l'entretien:
dans le Traitement par lots JDBC et procédure stockée tutoriel du Série de didacticiels JDBC , nous avons appris des méthodes pour effectuer un traitement par lots en Java à l'aide du pilote JDBC et également appris à créer des procédures stockées et à l'appeler à partir d'un programme Java.
JDBC est la forme courte couramment utilisée pour la connectivité de base de données Java. En utilisant JDBC, nous pouvons interagir avec différents types de bases de données relationnelles telles qu'Oracle, MySQL, MS Access, etc.
Cet article vous aidera à déchiffrer l'interview JDBC. Nous avons expliqué ici tous les concepts importants de JDBC.
Questions d'entrevue JDBC fréquemment posées
Q # 1) Qu'est-ce que JDBC?
Répondre: La connectivité de base de données Java est officieusement connue sous le nom de JDBC. Il est utilisé pour effectuer des opérations DB dans la base de données à partir de l'application Java. Il prend en charge l'interaction avec tout type de base de données comme Oracle, MySQL, MS Access, etc.
Q # 2) Quelle est l'utilisation du pilote JDBC?
Répondre: Il s'agit d'un composant logiciel utilisé pour permettre à l'application Java d'interagir avec la base de données.
Q # 3) Quels sont les différents types de pilotes dans JDBC?
Répondre: Il existe 4 pilotes JDBC différents sur le marché.
Elles sont:
- Type I: JDBC - Pont ODBC
- Type II: API native - moitié pilote Java
- Type III: Protocole réseau - Pilote totalement Java
- Type IV: Pilote léger - Pilote totalement Java
Type I: Pont JDBC-ODBC
Le pont JDBC-ODBC va se comporter comme une interface entre le client et le serveur DB. Le client doit y mettre le pilote JDBC-ODBC. La base de données doit prendre en charge le pilote ODBC. Si nous ne sommes pas préoccupés par l'installation du pilote dans le système client, nous utiliserons ce pilote.
Type II: API native: moitié pilote Java
C'est presque comme un pilote JDBC-ODBC. Plutôt qu'un pilote ODBC, nous utilisons ici une API native. Les bibliothèques de la base de données côté client sont utilisées.
Type III: protocole réseau
Cela fonctionne comme une approche à 3 niveaux pour accéder à la base de données. Un serveur intermédiaire sera utilisé pour se connecter à DB. Les appels de méthode JDBC envoient des données à un serveur intermédiaire puis le serveur communique avec DB.
Type IV: pilote mince
Il est absolument écrit en Java. Il convertit explicitement les appels de méthode JDBC en protocole de base de données spécifique au fournisseur. De nos jours, le commerçant de base de données fournit lui-même ce type de pilote à ses clients. Les programmeurs ne comptent donc pas sur d’autres sources. Il donne des performances plus élevées que les autres pilotes.
Q # 4) Quel type de pilote JDBC est utilisé par la plupart des gens?
Répondre: Le pilote léger de type IV est utilisé dans la plupart des applications. Il est développé par le fournisseur de la base de données lui-même afin que les développeurs puissent l'utiliser directement sans dépendre d'autres sources. Il permet un développement simple et facile. Il donne des performances plus élevées que les autres pilotes.
Q # 5) Quels sont les types d'architecture JDBC?
Répondre: JDBC prend en charge 2 types de modèles de traitement pour accéder à la base de données.
Elles sont:
- Architecture à deux niveaux: Ici, les programmes Java se connectent explicitement à DB. Nous n’avons besoin d’aucun médiateur comme un serveur d’applications pour se connecter à DB, à l’exception du pilote JDBC. Elle est également connue sous le nom d'architecture client-serveur.
- Architecture à trois niveaux: C'est totalement inverse de l'architecture à deux niveaux. Il n'y aura pas de communication explicite entre le pilote JDBC ou le programme Java et la base de données. Un serveur d'application sert de médiateur entre eux. Le programme Java enverra la demande à un serveur d'application, et le serveur l'enverra et recevra la réponse de / vers DB.
Q # 6) Quels sont les composants de JDBC?
Répondre: Il y a 4 composants principaux disponibles dans JDBC.
Elles sont:
- API JDBC
- Gestionnaire de pilotes JDBC
- Suite de tests JDBC
- JDBC - Pont ODBC
Q # 7) Quelles sont les étapes pour se connecter à JDBC?
Répondre: Il y a 6 étapes de base pour se connecter à DB en Java. Ceux-ci sont inscrits ci-dessous:
- Importer un package
- Charger le pilote
- Établir la connexion
- Création et exécution de la déclaration
- Récupérer les résultats
- Fermer la connexion
Q # 8) Quels types de données sont utilisés pour stocker l'image et le fichier dans la table de base de données?
Répondre:
- Type de données BLOB est utilisé pour stocker l'image dans DB. Nous pouvons également stocker des vidéos et des audios dans le type de données BLOB. Il est utilisé pour stocker le type binaire de données.
- Type de données CLOB est utilisé pour stocker le fichier dans DB. Il est utilisé pour stocker le type de caractère des données.
Q # 9) Qu'est-ce que DriverManager dans JDBC?
Répondre: DriverManager est une classe intégrée qui est présente dans le package java.sql. Il sera utilisé comme médiateur entre l'application Java et DB, que nous connectons / utilisons dans notre code. Dans un premier temps, nous devons enregistrer ou charger le pilote avec DriverManager. Ensuite, le pilote sera disponible pour être utilisé dans l'application.
La fonction principale de DriverManager est de charger la classe de pilote de la base de données et de créer une connexion avec DB.
Il existe 2 façons d'enregistrer ou de charger le pilote:
- Class.forName ()
- DriverManager.registerDriver ()
Q # 10) Quelle est la différence entre les interfaces Statement et PreparedStatement.
Réponse: Le tableau ci-dessous explique les différences:
DÉCLARATION | AFFIRMATION PRÉPARÉE |
---|---|
Il sera principalement utilisé pour exécuter des instructions SQL statiques | Il sera principalement utilisé pour exécuter des instructions SQL précompilées |
Il n'acceptera pas les paramètres lors de l'exécution | Il acceptera différents paramètres lors de l'exécution |
Ses performances sont inférieures à celles de PreparedStatement | Ses performances sont supérieures à Statement car il exécute les instructions SQL précompilées |
Il convient à l'exécution d'instructions DDL telles que CREATE, DROP, ALTER et TRUNCATE | Il convient à l'exécution d'instructions DML telles que INSERT, UPDATE et DELETE |
Il ne peut pas être utilisé pour stocker ou récupérer des images et des fichiers dans DB | Il peut être utilisé pour stocker ou récupérer une image et un fichier dans DB |
Il applique l'injection SQL | Il empêche l'injection SQL |
Suggestion de lecture = >> Déclaration et déclaration préparées JDBC
Q # 11) Expliquez la différence entre execute (), executeQuery () et executeUpdate ().
Répondre:
exécuter l'ordre() | executeUpdate () | Exécuter() |
---|---|---|
Il est utilisé pour exécuter les instructions SQL qui récupèrent certaines données de DB | Il est utilisé pour exécuter les instructions SQL qui mettront à jour ou modifieront les données dans DB | Il est utilisé pour exécuter tout type d'instructions SQL |
Il renvoie l'objet resultSet | Il renvoie une valeur entière qui représente le no. de lignes affectées | Il renvoie une valeur booléenne TRUE - renvoie un objet resultSet FALSE - renvoie une valeur int ou rien |
Il est utilisé pour exécuter uniquement la requête SELECT | Il est utilisé pour exécuter uniquement une requête non SELECT | Il est utilisé pour exécuter des requêtes SELECT et non SELECT |
Q # 12) Comment appeler des procédures stockées dans JDBC?
Répondre: Nous pouvons exécuter les procédures SQL Stored via l'interface CallableStatement. L'objet CallableStatement peut être créé à l'aide de la méthode prepareCall () de l'interface Connection.
Q # 13) Qu'est-ce que l'interface ResultSet?
Répondre: L'interface ResultSet est utilisée pour stocker les données de sortie après l'exécution de la requête SQL. L'objet de ResultSet maintient le point du curseur sur les données de résultat. Par défaut, le curseur pointe avant la première ligne des données de résultat. Nous pouvons également parcourir les données dans les objets du jeu de résultats.
questions d'entrevue pour un analyste commercial
Syntaxe:
Interface de déclaration:
Statement stmnt1 = conn.createStatement(); ResultSet resultset = stmnt1.executeQuery(“Select * from EMPLOYEE”);
Interface PreparedStatement:
PreparedStatement pstmnt1 = conn.prepareStatement(insert_query); ResultSet resultset = pstmnt1.executeQuery(“Select * from EMPLOYEE”);
Q # 14) Quels sont les types de ResultSet?
Répondre: Il existe 3 types dans ResultSet. Ceux-ci sont:
comment trouver xpath dans le chrome pour le sélénium
- TYPE_FORWARD_ONLY: C'est l'option par défaut. Le curseur se déplacera du début à la fin.
- TYPE_SCROLL_INSENSITIVE: Dans ce type, le curseur se déplacera à la fois vers l'avant et vers l'arrière. L'ensemble de données contient les données lorsque la requête SQL renvoie les données.
- TYPE_SCROLL_SENSITIVE: C'est la même chose que TYPE_SCROLL_INSENSITIVE, la différence est qu'il aura les données mises à jour lors de l'itération de l'objet du jeu de résultats.
Q # 15) Quels sont les modes de concurrence dans ResultSet?
Répondre: Il existe 2 modes différents de concurrence dans ResultSet. Elles sont:
- ResultSet.CONCUR_READ_ONLY : C'est le mode de concurrence par défaut. Une option en lecture seule est disponible. La mise à jour n'est pas possible.
- ResultSet.CONCUR_UPDATABLE: La mise à jour est possible.
Q # 16) Comment vérifier si la base de données prend en charge le mode de concurrence?
Répondre: Nous avons la méthode supportsResultSetConcurrency () qui sera utilisée pour vérifier si le type donné et les modes de concurrence sont pris en charge par la base de données ou non.
Q # 17) Pouvons-nous obtenir les données de la ligne particulière à partir du jeu de résultats?
Noter: ResultSet contient les données d'un ensemble de lignes
Répondre: Oui, nous pouvons obtenir les données de la ligne particulière à partir du resultSet en utilisant la méthode relative (). Il déplacera le curseur sur la ligne donnée soit en avant, soit en arrière à partir de la ligne actuelle. Si la valeur positive a été donnée, elle se déplacera vers l'avant. Si la valeur négative a été donnée, elle se déplacera vers l'arrière.
Q # 18) Quelle est l'utilisation des méthodes getter et setter dans ResultSet?
Répondre:
Méthodes Getter: Ceux-ci sont utilisés pour récupérer les valeurs de la colonne particulière de la table à partir de ResultSet. La valeur d'index de colonne ou le nom de colonne doit être transmis en tant que paramètre. Normalement, nous représenterons la méthode getter comme des méthodes getXXX ().
Exemple:
- int getInt (chaîne Nom_colonne): Il est utilisé pour récupérer la valeur de la colonne spécifiée Index et du type de données int comme type de retour.
Méthodes du poseur: Nous pouvons définir la valeur dans la base de données à l'aide des méthodes de définition ResultSet. C'est similaire aux méthodes getter, mais ici nous devons transmettre les valeurs / données de la colonne particulière à insérer dans la base de données et la valeur d'index ou le nom de colonne de cette colonne. Normalement, nous représenterons la méthode setter comme des méthodes setXXX ().
Exemple:
- void setInt (int Column_Index, int Data_Value): Il est utilisé pour insérer la valeur de la colonne Index spécifiée avec une valeur int.
Q # 19) Quel est le but principal de l'interface ResultSetMetaData?
Répondre: Cette interface donne plus d'informations sur ResultSet. Chaque objet ResultSet a été associé à un objet ResultSetMetaData.
Cet objet aura les détails des propriétés des colonnes comme le type de données de la colonne, le nom de la colonne, le nombre de colonnes dans cette table, le nom de la table, le nom du schéma, etc., la méthode getMetaData () de l'objet ResultSet est utilisée pour créer le Objet ResultSetMetaData.
Syntaxe:
PreparedStatement pstmntobj = conn.prepareStatement(insert_query); ResultSet resultsetobj = pstmntobj.executeQuery(“Select * from EMPLOYEE”); ResultSetMetaData rsmd obj= resultsetobj.getMetaData();
Q # 20) Qu'est-ce que DatabaseMetaData?
Répondre: L'interface DatabaseMetaData donne des informations sur la base de données que nous utilisons. Nous obtiendrons les informations suivantes - DatabaseName, Database version, etc.
Q # 21) Qu'est-ce que la propriété ACID?
Répondre:
- A – Atomicité -> Si toutes les requêtes se sont exécutées avec succès, les données seront validées, sinon elles ne seront pas validées.
- Cohérence C -> Les données doivent être cohérentes après toute transaction.
- I – Isolation -> Chaque transaction doit être isolée.
- D – Durabilité -> Si la transaction est validée une fois, elle doit être toujours disponible (si aucun changement ne s'est produit)
Q # 22) Comment changer la valeur du mode de validation automatique?
Répondre: Par défaut, la valeur d'AutoCommit est TRUE. Après l'exécution de l'instruction SQL, elle sera validée automatiquement. En utilisant la méthode setAutoCommit (), nous pouvons changer la valeur en AutoCommit.
Q # 23) Quelle est l'utilisation des méthodes Commit et Rollback?
Répondre:
Méthode Commit (): Nous avons la méthode commit () en Java pour valider les données. Une fois l'exécution SQL terminée, nous pouvons appeler la méthode commit.
Syntaxe: connectionobj.commit ();
Méthode Rollback (): Nous avons la méthode rollback () en Java pour restaurer les données. Rollback signifie annuler les modifications. Si l'une des instructions SQL échoue, nous pouvons appeler la méthode rollback pour annuler les modifications.
Syntaxe: connectionobj.rollback ();
Q # 24) Qu'est-ce que savepoint et quelles sont les méthodes que nous avons dans JDBC pour savepoint?
Répondre: Savepoint est utilisé pour créer des points de contrôle dans une transaction, et il nous permet d'effectuer une restauration vers le point de sauvegarde spécifique. Une fois la transaction validée ou restaurée, le point de sauvegarde qui a été créé pour une transaction sera automatiquement détruit et devient invalide.
Méthodes pour Savepoint:
- Méthode setSavepoint (): Il est utilisé pour créer Savepoint, nous pouvons utiliser la méthode rollback () pour annuler toutes les modifications jusqu'au savepoint.
- méthode releaseSavepoint (): Il est utilisé pour supprimer le point de sauvegarde donné.
Q # 25) Énumérez quelques exceptions qui relèvent de SQLException?
Répondre:
- SQLNonTransientException
- SQLTransientException
- SQLRecoverableException
>> Cliquez Ici pour plus d'informations sur les exceptions ci-dessus.
Q # 26) Qu'est-ce que le traitement par lots et comment le faire dans JDBC?
Répondre: Le traitement par lots consiste à exécuter plusieurs instructions SQL en une seule transaction. Cela réduira le temps de communication et augmentera les performances. Cela facilite grandement le traitement d'une grande quantité de données.
Avantages du traitement par lots:
- Améliorer les performances
- La cohérence des données
Comment effectuer un traitement par lots:
Nous avons les méthodes addBatch () et executeBatch () en Java pour effectuer le traitement par lots. Ces 2 méthodes sont présentes dans les classes Statement et PreparedStatement.
Q # 27) Quelle est la procédure stockée?
Répondre: Un groupe de requêtes SQL exécutées comme une seule unité pour effectuer une tâche particulière est appelé procédure stockée. Nous pouvons passer 3 types de paramètres différents. Chaque procédure est représentée par son nom. Le nom de la procédure doit donc être unique.
>> Pour plus d'informations sur la procédure stockée, reportez-vous à lien .
Q # 28) Quels sont les types de paramètres dans les procédures stockées?
Répondre: Il existe trois types de paramètres disponibles dans les procédures stockées. Elles sont:
- DANS: Utilisé pour transmettre les valeurs d'entrée à la procédure.
- EN DEHORS: Utilisé pour obtenir la valeur de la procédure.
- IN / OUT: Utilisé pour transmettre les valeurs d'entrée et obtenir la valeur vers / depuis la procédure.
Conclusion
Voici quelques questions d'entrevue JDBC qui couvrent à la fois les niveaux de base et avancé. Nous espérons que ce tutoriel vous donnera un aperçu de JDBC. Les explications données ci-dessus enrichiront vos connaissances et augmenteront votre compréhension de JDBC. Tous mes vœux!!!
lecture recommandée
- Tutoriel de connexion Java JDBC avec exemple de programmation
- Gestion des transactions Java JDBC avec exemple
- Tutoriel Java JDBC: Qu'est-ce que JDBC (Java Database Connectivity)
- JDBC ResultSet: Comment utiliser Java ResultSet pour récupérer des données
- Questions et réponses d'entrevue
- 25 meilleures questions et réponses d'entrevue de test Agile
- Questions et réponses d'entrevue de test ETL
- Top 25 des questions et réponses d'entretien sur les services Web Java