Base de données de connexion JDBC
La programmation impliquant l'établissement d'une connexion JDBC est assez simple. Voici quatre étapes simples:
Importation du package JDBC:
L'instruction d'importation indique au compilateur Java où trouver les références dans le code et placer la classe au début de votre code source.
À l'aide du package JDBC standard, il permet de sélectionner, d'insertion, de mise à jour et de supprimer les données des tables SQL, en ajoutant les importations suivantes dans votre code source:
Importer java.sql. *; // pour les programmes JDBC standard, Import Java.math. *; // pour le soutien BigDecimal et BigInteger
Enregistrez le pilote JDBC:
Avant de l'utiliser, vous devez enregistrer votre pilote dans le programme. Un pilote enregistré est un processus d'implémentation dans lequel le fichier de classe du pilote Oracle est chargé en mémoire afin qu'il puisse être utilisé comme interface JDBC.
Vous devez ne faire cette inscription qu'une seule fois dans votre programme. Un conducteur peut être enregistré de deux manières.
Méthode (i) - class.forname ():
La méthode la plus courante pour enregistrer un pilote est d'utiliser la méthode class.forname () de Java pour charger dynamiquement les fichiers de classe du pilote en mémoire, et il l'enregistrera automatiquement. Cette approche est souhaitable car elle permet au pilote d'enregistrer la configuration pour une portabilité facile.
L'exemple suivant utilise class.forname () pour enregistrer un pilote Oracle:
essayez {class.forname ("oracle.jdbc.driver.oracledriver");} catch (classNotFoundException ex) {System.out.println ("Erreur: incapable de charger la classe du pilote!"); System.exit (1);}Vous pouvez utiliser la méthode getInstance () pour résoudre les JVM incompatibles, mais deux exceptions supplémentaires sont écrites comme suit:
essayez {class.forname ("oracle.jdbc.driver.oracledriver"). newInstance ();} catch (classNotFoundException ex) {System.out.println ("Erreur: incapable de charger la classe du pilote!"); System.Exit (1); Catch (illégalaccessException ex) {System.out.println ("Erreur: problème d'accès pendant le chargement!"); System.Exit (2); Catch (InstantiationException ex) {System.out.println ("Erreur: incapable d'instancier le pilote!"); System.exit (3);} Méthode (ii) - driverManager.RegisterDriver ():
La deuxième façon de l'utiliser pour enregistrer un pilote consiste à utiliser la méthode stativnerManager.RegisterDriver ().
Il faut que, si vous utilisez un JDK JVM incompatible, par exemple, Microsoft fournit une méthode utilisant RegisterDriver ().
L'exemple suivant utilise RegisterDriver () pour enregistrer le pilote Oracle:
essayez {driver mydriver = new oracle.jdbc.driver.oracledriver (); DriverManager.RegisterDriver (myDriver);} catch (classNotFoundException ex) {System.out.println ("Erreur: Impossible de charger la classe du pilote!"); System.exit (1);} Formulation d'URL de la base de données:
Lors du chargement du pilote, vous pouvez établir une connexion dans le programme à l'aide de la méthode driverManager.getConnection (). Pour une référence facile, répertorions trois méthodes surchargées driverManager.getConnection ():
Ici, chaque formulaire nécessite une URL de la base de données. L'URL de la base de données pointe vers l'adresse de la base de données.
Le développement d'une URL de la base de données est le plus souvent utilisé pour établir des connexions.
Le tableau suivant répertorie les noms de pilotes JDBC populaires et les URL de la base de données.
RDBMSJDBC Nom du pilote Format URL
MySQL com.mysql.jdbc.Driver jdbc:mysql://hostname/ databaseNameORACLE oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@hostname:port Number:databaseNameDB2 COM.ibm.db2.jdbc.net.DB2Driver jdbc:db2:hostname:port Numéro / databasenamesybase com.sybase.jdbc.sybdriver jdbc: sybase: tds: hostname: numéro de port / databasename
Toutes les pièces en surbrillance au format URL sont statiques, et seules les pièces restantes doivent être modifiées en fonction des paramètres de la base de données.
Créer un objet de connexion: utilisez le nom d'utilisateur et le mot de passe de l'URL de la base de données:
Les trois formes suivantes de la méthode driverManager.getConnection () sont utilisées pour créer un objet de connexion. La forme la plus courante de getConnection () nécessite de passer une URL de base de données, un nom d'utilisateur et un mot de passe:
La valeur de Databasename pour la base de données URL: en supposant que vous utilisez le pilote mince d'Oracle, vous devez spécifier un port hôte: port.
Supposons qu'il existe une adresse TCP / IP hôte 192.0.0.1 et le nom d'hôte et l'écouteur Oracle sont configurés sur le port 1521, le nom de la base de données est EMP, puis l'URL complète de la base de données est:
JDBC: Oracle: Thin: @Amrood: 1521: EMP
Maintenant, le nom d'utilisateur et le mot de passe appropriés et la méthode getConnection () doivent être appelés pour obtenir un objet de connexion comme indiqué ci-dessous:
String url = "jdbc: oracle: mince: @amrood: 1521: emp"; chaîne user = "username"; string pass = "mot de passe" connexion conn = driverManager.getConnection (url, utilisateur, pass);
Utilisez une seule URL de la base de données:
La deuxième forme de la méthode driverManager.getConnection () nécessite uniquement une URL de base de données:
DriverManager.getConnection (URL de chaîne);
Cependant, dans ce cas, l'URL de la base de données, y compris le nom d'utilisateur et le mot de passe, a le formulaire général suivant:
JDBC: Oracle: pilote: nom d'utilisateur / mot de passe @ base de données
Ainsi, la connexion ci-dessus peut être créée comme suit:
String url = "jdbc: oracle: mince: nom d'utilisateur / mot de passe @ amrood: 1521: emp"; connexion conn = driverManager.getConnection (url);
Utilisez l'URL de la base de données et un objet Properties:
La troisième forme de la méthode driverManager.getConnection () nécessite une URL de base de données et un objet Properties:
DriverManager.getConnection (URL de chaîne, informations sur les propriétés);
Objet Propriétés, enregistre un ensemble de paires de mots clés. Il est utilisé pour appeler la méthode getConnection () lorsque l'attribut du pilote est transmis au pilote.
Pour établir la même connexion effectuée via l'exemple précédent, utilisez le code suivant:
Importer java.util. *; chaîne url = "jdbc: oracle: mince: @amrood: 1521: emp"; Properties info = new Properties (); info.put ("user", "username"); info.put ("mot de passe", "mot de passe"); connexion conn = drivermerManager.getConnection (url, info); Fermer la connexion JDBC:
À la fin du programme JDBC, il nécessite explicitement que toutes les connexions à la base de données soient fermées pour mettre fin à chaque session de base de données. Cependant, si vous oubliez, le collecteur de déchets Java ferme la connexion et il efface les objets périmés.
S'appuyer sur la collecte des ordures, en particulier dans la programmation de la base de données, est une très mauvaise habitude de programmation. Il devrait toujours avoir l'habitude de fermer la méthode close () associée à l'objet de connexion.
Pour s'assurer que la connexion est fermée, elle peut être exécutée dans les blocs enfin dans le code. Enfin, les blocs seront exécutés, qu'ils se produisent ou non ou non.
Pour fermer la connexion ouverte ci-dessus, la méthode close () doit être appelée comme suit:
conn.close ();
Fermez explicitement les connexions aux SGBD pour économiser des ressources.
Créer une application JDBC:
Il y a six étapes impliquées dans la création d'une application JDBC:
Exemple de code:
Cet exemple peut être utilisé comme modèle lorsque vous devez créer une application JDBC.
Cet exemple de code est écrit en fonction de l'installation de l'environnement et de la base de données dans le chapitre précédent.
Copiez l'exemple suivant FirstExample.java, compilez et exécutez comme suit:
// Étape 1. Importez les packages requis Import Java.Sql. *; Classe publique FirstExample {// JDBC Nom du pilote et URL de base de données Static Final String JDBC_DRIVER = "com.mysql.jdbc.driver"; chaîne finale statique db_url = "jdbc: mysql: // localhost / emp"; // les informations d'identification de la base de données static final string user = "username"; String statique final pass = "mot de passe"; public static void main (String [] args) {connexion conn = null; Déclaration stmt = null; essayez {// étape 2: registre jdbc driver class.forname ("com.mysql.jdbc.driver"); // Étape 3: Ouvrez un système de connexion.out.println ("Connexion à la base de données ..."); Conn = driverManager.getConnection (db_url, utilisateur, pass); // Étape 4: Exécuter un système de requête.out.println ("Création de déclaration ..."); STMT = Conn.CreateStatement (); String SQL; SQL = "SELECT ID, d'abord, dernier, âge des employés"; ResultSet rs = stmt.ExecuteQuery (SQL); // Étape 5: Extraire les données de Set Set While (Rs.Next ()) {// Récupérer par nom de colonne int id = Rs.GetInt ("id"); int age = Rs.getInt ("âge"); String First = Rs.GetString ("First"); String Last = Rs.GetString ("Last"); // affiche les valeurs System.out.print ("id:" + id); System.out.print (", âge:" + âge); System.out.print (", premier:" + premier); System.out.println (", dernier:" + dernier); } // Étape 6: Environnement de nettoyage Rs.Close (); stmt.close (); conn.close (); } catch (sqlexception se) {// gérer les erreurs pour jdbc se.printStackTrace (); } catch (exception e) {// Gire les erreurs pour class.forname e.printStackTrace (); } Enfin {// Enfin Block utilisé pour fermer les ressources essayez {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // Rien que nous ne pouvons essayer {if (conn! = null) Conn.close (); } catch (sqlexception se) {se.printStackTrace (); } // fin enfin essayez} // fin essayez System.out.println ("Goodbye!"); } // fin Main} // fin FirstExampleCompilons maintenant l'exemple ci-dessus comme suit:
C:> javac premierxample.java
Lors de l'exemple de premier exampleur, il produit les résultats suivants:
C:> Java Firstexample
Connexion à la base de données ... Création de déclaration ... ID: 100, âge: 18, premier: Zara, Last: Aliid: 101, âge: 25, premier: Mahnaz, Last: Fatmaid: 102, âge: 30, premier: Zaid, Last: Khanid: 103, âge: 28, premier: Sumit, dernier: Mittal