Connection à une base donnees oracle 11g [Résolu]

Lemaestro77 4 Messages postés mercredi 14 février 2018Date d'inscription 14 février 2018 Dernière intervention - 14 févr. 2018 à 09:59 - Dernière réponse : Lemaestro77 4 Messages postés mercredi 14 février 2018Date d'inscription 14 février 2018 Dernière intervention
- 14 févr. 2018 à 16:13
bonjour. je suis debutant sur java et je veux pouvoir me connecter a une base donnees oracle 11g. voila le code que j'ai recuperer mais ca me renvoie toujours connexion impossible.


import java.sql.*;
 
public class Connexion {
 
    Connection maConnexion;
     
    /*Permet d'ouvrir une connexion à la base de données,
     * en utilisant l'[/internet/url.php3 url] de la base passé en paramètre
     * et le driver jdbc
     * */
    public void ouvrirConnexion(String url) {
        try{
             
            //Charge le driver jdbc
            Class.forName("oracle.jdbc.driver.OracleDriver");
             
            //Connexion
            maConnexion=DriverManager.getConnection(url);
             
            System.out.println("Connexion établie !");
        }
         
        catch(ClassNotFoundException e){
            System.out.println("Impossible de charger le pilote!");
            return;
        }
         
        catch(SQLException e){
            System.out.println("Connexion impossible !");
            return;
        }
         
        }
 
    public static void main(String[] args) throws SQLException{
        String url="jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:mabase";
        Connexion bd = new Connexion ();
        bd.ouvrirConnexion(url);
     
}
     
}



je ne sais pas exactement ou peut etre l'erreur. l'url fonctionne bien quand je connecte la base de données à partir de l'onglet service de netbeans.

merci d'avance
Afficher la suite 

7 réponses

Répondre au sujet
jee pee 21412 Messages postés mercredi 2 mai 2007Date d'inscriptionModérateurStatut 14 février 2018 Dernière intervention - Modifié par jee pee le 14/02/2018 à 10:49
0
Utile
4
Bonjour,

Je ne connais pas particulièrement la syntaxe dans ton contexte. Mais dans la chaine complète de connexion à la base Oracle, en plus de l'ip du serveur, du port, et de l'ORACLE_SID (qu'il faut bien sur renseigner pas juste xxx.xxx.xxx.xxx:1521:mabase), il faut un nom de compte/mot de passe.

Cdlt
Lemaestro77 4 Messages postés mercredi 14 février 2018Date d'inscription 14 février 2018 Dernière intervention - 14 févr. 2018 à 13:25
merci. oui j'ai bien renseigné. le nom de compte et le mot de passe se renseigne sous quelle forme?
KX 15216 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 février 2018 Dernière intervention > Lemaestro77 4 Messages postés mercredi 14 février 2018Date d'inscription 14 février 2018 Dernière intervention - 14 févr. 2018 à 13:42
De la même manière que tu as fait
maConnexion=DriverManager.getConnection(url);
tu as une méthode qui fait
DriverManager.getConnection(url, user, password)
;

Voir la documentation :
https://docs.oracle.com/javase/9/docs/api/java/sql/DriverManager.html
https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html
jee pee 21412 Messages postés mercredi 2 mai 2007Date d'inscriptionModérateurStatut 14 février 2018 Dernière intervention > Lemaestro77 4 Messages postés mercredi 14 février 2018Date d'inscription 14 février 2018 Dernière intervention - 14 févr. 2018 à 13:51
regarde : http://www.mkyong.com/jdbc/connect-to-oracle-db-via-jdbc-driver-java/
mais ce n'est pas la même syntaxe que toi
Lemaestro77 4 Messages postés mercredi 14 février 2018Date d'inscription 14 février 2018 Dernière intervention - 14 févr. 2018 à 13:56
Merci pour ton aide. exactement il fallait que je specifie le nom d'utilisateur et le mot de passe.
Commenter la réponse de jee pee
KX 15216 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 14 février 2018 Dernière intervention - 14 févr. 2018 à 13:33
0
Utile
1
Bonjour,

"je ne sais pas exactement ou peut etre l'erreur"
Le problème c'est que les exceptions que tu pourrais obtenir tu les caches avec tes System.out.println, toutes les informations utiles sont perdues...
De toute façon, si tu n'as pas de connexion à la base ton programme ne pourra rien faire donc faire un petit message et continuer quand même c'est inutile, il vaut mieux laisser une exception.

try {
    // ...
} catch(SQLException e) {
    throw new IllegalStateException("Connexion impossible : " + url, e);
}

Remarque : le Class.forName("oracle.jdbc.driver.OracleDriver") n'est utile qu'une fois au démarrage du programme, pas besoin de le faire à chaque connexion.
Lemaestro77 4 Messages postés mercredi 14 février 2018Date d'inscription 14 février 2018 Dernière intervention - 14 févr. 2018 à 16:13
Merci pour ta reponse.
Commenter la réponse de KX