2017-10-19 189 views
-2

我可以在DriverManager.getConnection参数中使用变量使其变为动态变量。如何将Oracle连接字符串保存为Java中的变量

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

但是,当我试图封装连接字符串像下面的代码的变量。我收到了“调用中的无效参数”。

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(); 
    } 

我打印出这个变量,它与第一个方法引号和所有内容完全相同。

我也尝试了一种不同的方法,如下所示。这一次我得到一个“无效的Oracle URL指定”。

Connection con = null; 

    try { 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     con = DriverManager.getConnection(dbaseurl, dbaseuser, dbasepwrd); 
     //con.setAutoCommit(false); 
    } catch (ClassNotFoundException e) { 
     System.out.println("Oracle JDBC Driver Missing"); 
     e.printStackTrace(); 
     return null; 
    } catch (SQLException e) { 
     System.out.println("Connection could not be obtained."); 
     e.printStackTrace(); 
     return null; 
    } 

我研究了10g的oracle url,它似乎是按顺序的。以下是我如何初始化dbaseurl变量。目标不是硬编码连接属性。请帮忙。谢谢。

“的jdbc:神谕:薄@主机名:端口”

回答

2

你似乎已经做出了串出你以前的代码,包括",字符。

+0

好的。基于此,将连接字符串放在一个变量中,然后从get连接中调用它是不可行的。不过,我也尝试过这种方法,但仍无法正常工作 – user3286012

+0

康恩= DriverManager.getConnection就 \t \t \t \t( “\” 的jdbc:神谕:薄:\ “” +主机+ “:” +端口+ “:” + SID + “\”“+”,\“”+ uname +“\”,“+”\“”+ pword +“\”“); – user3286012

+0

如果您将这些值设置为a,b,c ...,的字符串是:'“jdbc:oracle:thin:”a:b:c“,”d“,”e“'。即它有''''和','字符,它们不应该在你的连接字符串中。 – user1675642

0

可能只是需要一些提示。但是这工作。而不是一个字符串。我将每个参数保存到一个变量中。

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(); 
    } 
相关问题