2009-12-06 4 views
2

Quelqu'un peut-il me expliquer ces classes et méthodes?Aidez-moi à connecter java et oracle

DriverManager.registerDriver 
(new oracle.jdbc.driver.OracleDriver()); 
conn = java.sql.DriverManager.getConnection(
"jdb:ocracle:thin:username/[email protected]:1234:dbSID"); 

Merci

+0

Vous avez quelques fautes de frappe dans votre URL JDBC. Doit commencer comme "jdbc: oracle:" –

Répondre

0

La classe DriverManager en Java gère les connexions entre la base de données et les pilotes JDBC, routage db i/o au pilote jdbc correct (vous pouvez avoir plusieurs pilotes connexions-à-dire actifs à plusieurs types de la base de données).

Les pilotes sont enregistrés auprès de l'DriverManager afin qu'ils deviennent une partie de son jeu de travail. L'étape suivante consiste à créer une connexion à votre base de données pour pouvoir exécuter des requêtes. Ceci est obtenu par la méthode

Connection conn = DriverManager.getConnection("jdb:ocracle:thin:username/[email protected]:1234:dbSID") 

. La chaîne de connexion passée dans la méthode getConnection() est spécifique au pilote, vous devez utiliser RTFM pour chaque pilote. Notez que le DriverManager sélectionne automatiquement le pilote de la liste des pilotes inscrits, selon la syntaxe de la chaîne de connexion que vous passez.

L'objet de connexion retournée est votre poignée pour la préparation des déclarations et en cours d'exécution des requêtes sur la base de données

+0

Selon le javadoc: Les applications n'ont plus besoin de charger explicitement les pilotes JDBC en utilisant Class.forName(). Les programmes existants qui chargent actuellement les pilotes JDBC en utilisant Class.forName() continueront à fonctionner sans modification. – Bozho

+0

S'il vous plaît pardonner les pauvres bâtards coincés dans 1.4.2 en raison de contraintes de compatibilité –

+0

bien, "n'est pas la manière recommandée" est une fausse déclaration. – Bozho

4

Nous allons décoder les lignes de votre bloc de code:

1. DriverManager.registerDriver 
2. (new oracle.jdbc.driver.OracleDriver()); 
3. conn = java.sql.DriverManager.getConnection(
4. "jdbc:oracle:thin:username/[email protected]:1234:dbSID"); 

Ligne 2:

Crée une nouvelle instance de oracle.jdbc.driver.OracleDriver, un JDBC Driver pour la base de données Oracle. Un pilote JDBC implémente les interfaces et les classes définies par l'API JDBC que les programmeurs utilisent pour se connecter à une base de données et effectuer des requêtes.

Ligne 1

Enregistre l'instance du oracle.jdbc.driver.OracleDriver à la classe DriverManager qui est la couche de gestion traditionnelle de JDBC, de travail entre l'utilisateur et les pilotes. Il gère l'établissement d'une connexion entre une base de données et le pilote approprié.

Ligne 3:

Maintenant que la couche de communication entre l'application et la base de données JDBC est prêt, vous pouvez créer une connexion en appelant la méthode getConnection() de la classe DriverManager.

Ligne 4:

Ceci est la "chaîne de connexion" ou "URL de base de données". Ce String identifie la base de données à laquelle vous souhaitez vous connecter. Le schéma de cette URL est spécifique au fournisseur de base de données et/ou au driver (ici, Oracle et son driver "thin").


Notez que avant Java 6, appelant Class.forName était le meilleur moyen pour charger et enregistrer un pilote JDBC. Il était de la responsabilité du Driver d'appeler DriverManager.registerDriver.

[...] Toutes les classes Driver doivent être écrites avec une section statique (un initialiseur statique) qui crée une instance de la classe, puis il enregistre avec la classe DriverManager lorsqu'il est chargé. Ainsi, un utilisateur n'appellerait normalement pas DriverManager.registerDriver directement; il doit être appelé automatiquement par une classe Driver lorsqu'il est chargé.

Vérifiez le chapitre Driver Manager de la documentation JDBC pour plus de détails.

+0

Thanx 4 ur réponse j'apprécie vraiment que bonne chance Rapport RAQ www.raqsoft.com – wayne

+0

Vous devez savoir que le package oracle.jdbc.driver n'est plus pris en charge par le client pour Oracle. A partir de maintenant, le paquetage oracle.jdbc devrait être utilisé. –