我可以在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:神谕:薄@主机名:端口”
好的。基于此,将连接字符串放在一个变量中,然后从get连接中调用它是不可行的。不过,我也尝试过这种方法,但仍无法正常工作 – user3286012
康恩= DriverManager.getConnection就 \t \t \t \t( “\” 的jdbc:神谕:薄:\ “” +主机+ “:” +端口+ “:” + SID + “\”“+”,\“”+ uname +“\”,“+”\“”+ pword +“\”“); – user3286012
如果您将这些值设置为a,b,c ...,的字符串是:'“jdbc:oracle:thin:”a:b:c“,”d“,”e“'。即它有''''和','字符,它们不应该在你的连接字符串中。 – user1675642