Connexion à oracle via java

Signaler
Messages postés
29
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
9 novembre 2011
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
Bonjour,
je veux connecter à une base oracle, bon la connexion est réussi (test de connexion succesfull) mais le problème au niveau de code java.
voici mon code:
public class Connect 
 {
 Connection con = null;
 ResultSet resultats = null;
 String requete = "";
 public static void main (String args[])
 {
 //String requet = "select * from dept ";
 Connect B= new Connect();
 B.connexionBD();
 //B.select(requet);
 }
 private static void affiche(String message)
 {
 System.out.println(message);
 }
 private static void arret(String message) 
 {
 	System.err.println(message);
 	System.exit(99);
 }
 //public void base() {
 //chargement de driver
 public void connexionBD()
 {
 try
 {
 Class.forName("oracle.jdbc.driver.OracleDriver");
 System.out.println ("driver etablie");
 }
 catch(Exception e)
 {
 System.out.println ("erreur:Driver int" + "rouvable");
 }
 //connexion à la base
 try
 {
 String URL = "jdbc:oracle:thin:@localhost:1521:journal";
 String USER = "system";
 String PASSWD = "admin";
 con =DriverManager.getConnection(URL,USER, PASSWD);
 System.out.println ("connexion base pfe etablie");
 }
 catch(Exception e)
 {
 System.out.println ("erreur: base introuvable2");
 }
}
 }


toujours il m'affiche "erreur:Driver introuvable" et "erreur: base introuvable2"
s'il vous plait aidez moi :( et merci pour votre collaboration

8 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
124
Salut,

Erreur archie-classique : as-tu rajouté le connector JDBC d'oracle dans le classpath de ton application ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
29
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
9 novembre 2011

salut,
j'ai ajouté ma base "journal" dans panneau de configuration\outils d'administration\ sources de données ODBC.
et pardon, je ne connait pas comment ajouter le connector JDBC d'oracle dans le classpath de mon application
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
124
Salut,

Ce n'est pas cà : ca c'est pour une connection ODBC par ADO (technologie microsoft) et non pour java qui est portable et qui fonctionne sous windows, sous linux et sous mac (ces deux derniers n'ont pas le système d'ODBC à ma connaissance).

Pour java, il te faut rajouter le jar du connector JDBC d'oracle (que tu dois pouvoir télécharger sur le site d'oracle) dans le classpath de ton projet (comme pour toute bibliothèque utilisée par ton projet), je te laisse regarder dans la documentation de ton ide pour savoir comment faire.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
29
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
9 novembre 2011

j'ai essayé d'ajouter ORACLE_HOME dans les variables d'environnement avec une valeur "D:\oracle\product\10.1.0\db_journal\dbs".
j'ai pris ce chemin par (démarrer\executer\regedit\KEY_OraDb10g_journal\oracel_home)

merci,
Messages postés
29
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
9 novembre 2011

pardon je te répond sans voir votre message, concernant le fichier .jar, j'ai le téléchargé, bien sure, pour faire la connexion (ojdbc14.jar) et ça marche mais mon problème au niveau de la connexion via le code java :(, merci beaucoup pour votre collaboration
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
124
Salut,

Oui parce que le jar n'est pas contenu dans le classpath : le classpath est l'équivalent de la variable système PATH de windows : c'est l'endroit dans lesquels java va chercher les jars dont dépend ton application. S'il ne trouve pas un jar et que tu essaye d'utiliser une classe contenue dedans, il te lève l'exception NoClassDefFound, ce qui est très certainement le cas dans ton code vu que ton code suivant te lève une exception (au lieu d'afficher un message bidon, tu devrais plutôt afficher la stacktrace de l'erreur, ca t'en apprendra bien plus sur l'erreur en question) :
try
 {
 Class.forName("oracle.jdbc.driver.OracleDriver");
 }
 catch(Exception e)
 {
 e.printStackTrace();
 }

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
29
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
9 novembre 2011

ok j'ai ajouter "e.printStackTrace();"
et j'ai ajouter dans la variable "path" e aussi "classpath" l'emplacement de "ojdbc14.jar"
l'erreur sera :

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at Connect.openConnection(Connect.java:32)
at Connect.main(Connect.java:11)
Echec de la fermeture de la connexion :null

****
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
124
Salut,

Ce n'est pas une variable système à rajouter, comme je te l'ai expliqué, le classpath ce paramètre au niveau de ton IDE (ainsi qu'au niveau de ton fichier MANIFEST du jar de ton application lorsque tu en fera une application autonome sous forme de jar).

Il faut que tu indique à ton IDE que tu utilise le connector JDBC d'oracle, et lui indiqué où est-ce qu'il peut trouver le jar du connector.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement