2017-10-19 10 views
-2

Puis-je utiliser une variable dans le paramètre DriverManager.getConnection pour la rendre dynamique. Toutefois, lorsque j'ai essayé d'encapsuler la chaîne de connexion à une variable comme le code ci-dessous. Je reçois un "arguments Invalid in call".Comment enregistrer la chaîne de connexion Oracle en variable dans Java

String connstring = null;  
    connstring = "\"jdbc:oracle:thin:" + host + ":" + port + ":" + sid + "\"" + "," + "\"" + uname + "\"" + "," + "\"" + pword + "\""; 
    System.out.println(connstring); 
    Connection conn = null; 
    try { 
     conn = DriverManager.getConnection(connstring); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

J'imprime la variable et c'est exactement la même chose avec les premières citations d'approche et tout. J'ai également essayé une approche différente comme celle ci-dessous. Cette fois, je reçois une "URL Oracle invalide". J'ai recherché l'oracle url pour 10g et il semble dans l'ordre. Voici comment j'ai initialisé la variable dbaseurl. L'objectif n'est pas de coder en dur les propriétés de connexion. S'il vous plaît aider. Merci.

"jdbc: oracle: nom d'hôte mince @: port"

Répondre

2

Vous semblez avoir fait une chaîne de votre ancien code, y compris les caractères " et ,.

+0

Ok. En conséquence, placer la chaîne de connexion dans une variable et l'appeler depuis la connexion get n'est pas viable. Cependant, j'ai essayé aussi cette approche, mais ne fonctionne toujours pas – user3286012

+0

conn = DriverManager.getConnection \t \t \t \t ("\" jdbc: oracle: thin: \ "" + host + ":" + port + ":" + sid + "\" "+", \ "" + uname + "\", "+" \ "" + pword + "\" "); – user3286012

+0

Si vous définissez ces valeurs sur a, b, c ..., la valeur de cette chaîne est: '" jdbc: oracle: mince: "a: b: c", "d", "e" '. c'est-à-dire qu'il contient les caractères '" 'et', 'qui ne devraient pas figurer dans votre chaîne de connexion. – user1675642

0

Probablement juste besoin d'indices. Mais cela a fonctionné. Au lieu d'une chaîne. J'ai sauvegardé chaque argument dans une variable.

String dburl = "jdbc:oracle:thin:" + host + ":" + port + ":" + sid; 
    System.out.println(dburl); 

    Connection conn = null; 
    try { 
     conn = DriverManager.getConnection 
       //("\"jdbc:oracle:thin:\"" + host + ":" + port + ":" + sid + "\"" + ",\"" + uname + "\"," + "\"" + pword + "\""); 

       (dburl,uname,pword); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    }