English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Après avoir installé le pilote correspondant, vous pouvez utiliser JDBC pour établir une connexion à la base de données.
Le codage impliqué dans la création de la connexion JDBC est très simple. Voici ces quatre étapes simples-
Importez le paquet JDBC:Ajoutez une instruction dans le programme Java: importpour importer les classes nécessaires dans le code Java.
Enregistrez le pilote JDBC: Cette étape permet au JVM de charger l'implémentation du pilote nécessaire en mémoire, ce qui peut répondre à vos demandes JDBC.
Configuration de l'URL de base de données: C'est pour créer une adresse correcte au format, qui pointe vers la base de données que vous souhaitez connecter.
Créer un objet de connexion:Enfin, écrivez pourDriverManagerl'objetgetConnection()Le code d'appel de la méthode pour établit une connexion réelle à la base de données.
Les instructions d'importation indiquent à l'interpréteur Java où trouver les classes référencées dans le code et sont placées au début du code source.
Pour utiliser le package JDBC standard (qui vous permet de sélectionner, insérer, mettre à jour et supprimer des données dans les tables SQL), ajoutez les suivantes à votre code source
import java.sql.* ; // Pour les programmes JDBC standard import java.math.* ; // Obtenir le support BigDecimal et BigInteger
Avant d'utiliser le pilote, vous devez enregistrer le pilote dans le programme. L'enregistrement du pilote est le processus de chargement du fichier de classe du pilote Oracle dans la mémoire, de sorte qu'il puisse être utilisé comme implémentation de l'interface JDBC.
Vous devez enregistrer le pilote une seule fois dans votre programme. Vous pouvez enregistrer le pilote de deux manières.
La méthode la plus courante pour enregistrer un pilote est d'utiliser Java Class.forName() Cette méthode, qui charge le fichier de classe du pilote dynamiquement dans la mémoire, enregistre automatiquement en mémoire. Cette méthode est préférable car elle permet de rendre l'enregistrement du pilote configurable et portable.
Voici un exemple de Class.forName() utilisé pour enregistrer le pilote Oracle
try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch(ClassNotFoundException ex) { System.out.println("Erreur: impossible de charger la classe du pilote!"); System.exit(1); }
Vous pouvez utiliserméthode getInstance()Pour résoudre les JVM incompatibles, mais vous devez écrire deux exceptions supplémentaires de code, comme suit :
try { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); } catch(ClassNotFoundException ex) { System.out.println("Erreur : Impossible de charger la classe du pilote !"); System.exit(1); catch(IllegalAccessException ex) { System.out.println("Erreur : Problème d'accès lors du chargement !"); System.exit(2); catch(InstantiationException ex) { System.out.println("Erreur : Impossible d'instancier le pilote !"); System.exit(3); }
Vous pouvez utiliser une autre méthode statique pour enregistrer le pilote DriverManager.registerDriver() 。
Si vous utilisez un JVM incompatible avec JDK (par exemple, le JVM fourni par Microsoft), vous devriez utiliser registerDriver() méthode.
L'exemple suivant est utilisé pour enregistrer le pilote Oracle via registerDriver().-
try { 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); }
Après avoir chargé le pilote, vous pouvez établir une connexion en utilisant la méthode DriverManager.getConnection(). Pour votre référence, je vais énumérer les trois méthodes redéfinies de DriverManager.getConnection().
getConnection(String url)
getConnection(String url, Properties prop)
getConnection(String url, String user, String password)
Ici, chaque forme nécessite une base de donnéesURL.L'URL de base de données est l'adresse pointant vers votre base de données.
L'établissement de l'URL de base de données est le point où se produisent la plupart des problèmes liés à la connexion.
Le tableau suivant liste les noms de pilotes JDBC courants et les URL de base de données.
Base de données | Nom du pilote JDBC | Format de l'URL |
---|---|---|
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://hostname/ databaseName |
ORACLE | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@hostname: numéro de port:databaseName |
DB2 | COM.ibm.db2.jdbc.net.DB2Driver | jdbc:db2:hostname: numéro de port/databaseName |
Sybase | com.sybase.jdbc.SybDriver | jdbc:sybase:Tds:hostname: numéro de port/databaseName |
Toutes les parties en surbrillance dans le format URL sont statiques, vous n'avez besoin de modifier que le reste en fonction des paramètres de la base de données.
Nous avons énuméré trois DriverManager.getConnection() to create a connection object.
The most commonly used form of getConnection() requires you to pass the database URL,usernameandpassword
Assuming you are using Oracle'sthinThe driver will specify the host:port:databaseName value for the database part of the URL.
If you are using TCP / IP address192.0.0.1and your Oracle listener is configured to listen on port1521and your database name is EMP, then the complete database URL will be-
jdbc:oracle:thin:@amrood:1521:EMP
Now, you must call the method getConnection() with the correct username and password to getConnectionAn object, as shown below:
String URL = "jdbc:oracle:thin:@amrood:1521:EMP"; String USER = "username"; String PASS = "password" Connection conn = DriverManager.getConnection(URL, USER, PASS);
The second form of DriverManager.getConnection() method only requires a database URL-
DriverManager.getConnection(String url);
However, in this case, the database URL contains the username and password and has the following standard form-
jdbc:oracle:driver:username/password@database
Therefore, the above connection can be created as follows-
String URL = "jdbc:oracle:thin:username/password@amrood:1521:EMP"; Connection conn = DriverManager.getConnection(URL);
The third form of DriverManager.getConnection() method requires a database URL and a Properties object-
DriverManager.getConnection(String url, Properties info);
The property object contains a set of keywords-Pair. It is used to pass driver properties to the driver during the call to getConnection() method.
要建立与前面的示例相同的连接,请使用以下代码-
import java.util.*; String URL = "jdbc:oracle:thin:@amrood:1521:EMP"; Properties info = new Properties( ); info.put( "user", "username" ); info.put( "password", "password" ); Connection conn = DriverManager.getConnection(URL, info);
在 JDBC 程序的末尾,要求显式地关闭与数据库的所有连接以结束每个数据库会话。但是,如果您忘记了,Java 的垃圾收集器在清理旧对象时将关闭该连接。
依靠垃圾回收,特别是在数据库编程中,是非常差劲的编程实践。您应该养成始终使用与连接对象关联的 close()方法,来关闭数据库连接的习惯。
为了确保关闭连接,您可以在代码中提供一个“finally”块。finally块总是执行,而不考虑的异常的发生与否。
要关闭上面打开的连接,您应该按以下方式调用 close() 方法:
conn.close();
显式关闭连接可以节省 DBMS 资源,这将使您的数据库管理员满意。
为了更好地理解,我们建议您学习JDBC-教程示例代码。