Introduction à l'architecture JDBC

Java Database Connectivity (JDBC) est une API (Application Program Interface) ou une interface indépendante de la plate-forme qui permet de connecter des programmes java à diverses bases de données telles que Oracle, My SQL, MS Access et SQL Server. Il fournit des moyens d'interroger et de mettre à jour la base de données à l'aide d'instructions de mise à jour SQL (Structured Query Language) telles que CREATE, DELETE, INSERT et UPDATE et d'instructions de requête comme SELECT. Il est presque similaire à ODBC (Open Database Connectivity) fourni par Microsoft.

Pour connecter le programme ou l'application Java à la base de données, cinq étapes doivent être suivies:

1. Charger le pilote: le pilote aide à établir une connexion à la base de données, le pilote doit donc être chargé une fois dans le programme. Cela peut être fait par deux méthodes:

  • Class.forName (): en utilisant cela, le fichier de classe du pilote est chargé dans la mémoire pendant l'exécution. Il n'est pas nécessaire de créer un nouvel objet. Par exemple:

Class.forName(“oracle.jdbc.driver.OracleDriver”);

  • DriverManager.registerDriver (): Ici DriverManager est une classe Java intégrée où le registre est son membre statique. En l'utilisant, le constructeur de la classe de pilote est appelé pendant la compilation. Dans ce nouvel objet est créé. Par exemple:

DriverManager.registerDriver(new oracle.jdbd.driver.OracleDriver());

2. Création de connexions: Une fois le pilote chargé, la connexion est établie. L'objet de connexion utilise un nom d'utilisateur, un mot de passe et une URL pour configurer la connexion. L'URL a un format prédéfini qui contient le nom de la base de données, le pilote utilisé, l'adresse IP où la base de données est stockée, le numéro de port et le fournisseur de services. La connexion peut être établie à l'aide de la commande:

Connection con = DriverManager.getConnection(URL, user, password);

3. Création d'une déclaration: après avoir établi la connexion, l'utilisateur peut interagir avec la base de données. Les interfaces telles que l'instruction JDBC, PreparedStatement, CallableStatement fournissent des méthodes qui permettent à un utilisateur d'envoyer des instructions SQL et d'obtenir des données de la base de données. La commande utilisée pour créer l'instruction est;

Statement stmt = con.createStatement();

4. Exécution de la requête: la requête SQL est exécutée pour interagir avec la base de données. Une requête peut être pour la mise à jour / insertion dans la base de données ou pour la récupération de données. L'interface d'instructions fournit deux méthodes, à savoir la méthode executeQuery () pour exécuter des requêtes de récupération de données tandis que la méthode executeUpdate () pour exécuter des requêtes de mise à jour ou d'insertion. Par exemple:

int n = stmt.executeUpdate(“DELETE TABLENAME”);
if(n==1)
System.out.println(“Success”);
else
System.out.println(“Failed”);

5. Fermeture de la connexion: Après avoir exécuté notre requête, l'utilisateur des données souhaitant mettre à jour ou récupérer a été fait, il est maintenant temps de fermer la connexion établie. L'interface de connexion fournit une méthode close () pour fermer la connexion. Par exemple:

con.close();

Architecture JDBC

JDBC prend en charge deux types de modèles de traitement pour accéder à la base de données, à savoir à deux niveaux et à trois niveaux.

1. Architecture à deux niveaux:

Cette architecture permet au programme ou à l'application Java de communiquer directement avec la base de données. Il a besoin d'un pilote JDBC pour communiquer avec une base de données spécifique. La requête ou la demande est envoyée par l'utilisateur à la base de données et les résultats sont reçus par l'utilisateur. La base de données peut être présente sur la même machine ou sur toute machine distante connectée via un réseau. Cette approche est appelée architecture ou configuration client-serveur.

2. Architecture à trois niveaux:

En cela, il n'y a pas de communication directe. Les demandes sont envoyées au niveau intermédiaire, c'est-à-dire que le navigateur HTML envoie une demande à l'application Java qui est ensuite envoyée à la base de données. La base de données traite la demande et renvoie le résultat au niveau intermédiaire qui communique ensuite avec l'utilisateur. Il augmente les performances et simplifie le déploiement de l'application.

Composants de l'architecture JDBC

  • Driver Manager: c'est une classe qui contient une liste de tous les pilotes. Lorsqu'une demande de connexion est reçue, elle correspond à la demande avec le pilote de base de données approprié à l'aide d'un protocole appelé sous-protocole de communication. Le pilote qui correspond est utilisé pour établir une connexion.
  • Driver: C'est une interface qui contrôle la communication avec le serveur de base de données. Les objets DriverManager sont utilisés pour effectuer la communication.
  • Connexion: C'est une interface qui contient des méthodes pour contacter une base de données.
  • Instruction: cette interface crée un objet pour soumettre des requêtes ou des instructions SQL à la base de données.
  • ResultSet: contient les résultats récupérés après l'exécution des instructions ou requêtes SQL.
  • SQLException: toutes les erreurs qui se produisent dans l'application de base de données sont gérées par cette classe.

Le schéma d'architecture JDBC de base est illustré ci-dessous avec le positionnement de tous les composants:

Interfaces

Le package java.sql comprend de nombreuses interfaces. Certaines interfaces populaires sont mentionnées ci-dessous:

  • Interface de pilote: Cette interface permet de multiples pilotes de base de données. Les objets DriverManager sont créés pour communiquer avec la base de données. Ces objets sont créés par DriverManager.registerDriver ();
  • Interface de connexion: l' interface de connexion établit la connexion, c'est-à-dire la session entre le programme java et la base de données. Il a de nombreuses méthodes comme rollback (), close () etc.
  • Interface d'instructions: cette interface fournit des méthodes pour l'exécution des requêtes SQL. Il fournit des méthodes d'usine pour obtenir un objet ResultSet. Certaines méthodes d'interface d'instructions sont executeQuery (), executeUpdate () etc.
  • Interface PreparedStatement: cette interface est utile lorsque les requêtes SQL doivent être implémentées plusieurs fois. Il accepte les paramètres d'entrée pendant l'exécution.
  • Interface CallableStatement: Cette interface est utilisée lorsque les procédures stockées doivent être accessibles. Il accepte également des paramètres pendant l'exécution.
  • Interface ResultSet: Cette interface permet de stocker le résultat renvoyé après l'exécution des requêtes SQL.

Types de pilotes JDBC

Il existe quatre types de pilotes JDBC:

1. Pilote de type 1 ou pont JDBC-ODBC: ce pilote agit comme un pont entre JDBC et ODBC. Il convertit les appels JDBC en appels ODBC, puis envoie la demande au pilote ODBC. Il est facile à utiliser mais le temps d'exécution est lent.

2. Pilote de type 2 ou API native Pilote partiellement Java: ce pilote utilise l'appel JNI (Java Native Interface) sur l'API client native spécifique à la base de données. Il est relativement plus rapide que le pilote de type 1, mais il nécessite une bibliothèque native et le coût de l'application augmente également.

3. Pilote de type 3 ou pilote de protocole réseau: ces pilotes communiquent avec le serveur middleware JDBC à l'aide d'un protocole réseau propriétaire. Ce middleware traduit le protocole réseau en appels spécifiques à la base de données. Ils sont indépendants de la base de données. Ils peuvent passer d'une base de données à une autre mais sont lents en raison de nombreux appels réseau.

4. Pilote de type 4 ou léger: ce pilote est également appelé pilote Java pur car il interagit directement avec la base de données. Il ne nécessite ni bibliothèque native ni serveur middleware. Il a de meilleures performances que les autres pilotes, mais relativement lent en raison d'une augmentation d'un certain nombre d'appels réseau.

Conclusion

Cet article spécifie l'architecture JDBC, ses interfaces et les types de pilotes pour communiquer ou interagir avec la base de données.

Désormais, les bases de données d'une journée sont gérées dans tous les secteurs, il est donc nécessaire de les mettre à jour et d'en récupérer les données. Donc, comprendre l'architecture aiderait à comprendre les concepts de base de JDBC.

Articles recommandés

Cela a été un guide pour l'architecture JDBC. Ici, nous avons discuté des types de pilotes, interfaces et composants de l'architecture JDBC. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Comment installer Java 8?
  2. Questions d'entretiens chez JDBC
  3. Comment installer Apache?