Menu

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

Lemaestro77 14 Messages postés mercredi 14 février 2018Date d'inscription 22 mars 2018 Dernière intervention - 14 févr. 2018 à 09:59 - Dernière réponse : Lemaestro77 14 Messages postés mercredi 14 février 2018Date d'inscription 22 mars 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 

Votre réponse

7 réponses

jee pee 21829 Messages postés mercredi 2 mai 2007Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - Modifié par jee pee le 14/02/2018 à 10:49
0
Merci
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 14 Messages postés mercredi 14 février 2018Date d'inscription 22 mars 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 15446 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention > Lemaestro77 14 Messages postés mercredi 14 février 2018Date d'inscription 22 mars 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 21829 Messages postés mercredi 2 mai 2007Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > Lemaestro77 14 Messages postés mercredi 14 février 2018Date d'inscription 22 mars 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 14 Messages postés mercredi 14 février 2018Date d'inscription 22 mars 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 15446 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 14 févr. 2018 à 13:33
0
Merci
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 14 Messages postés mercredi 14 février 2018Date d'inscription 22 mars 2018 Dernière intervention - 14 févr. 2018 à 16:13
Merci pour ta reponse.
Commenter la réponse de KX