我可以在DriverManager.getConnection参数中使用变量使其动态化。
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网址,看起来很顺序。下面是我初始化dbaseurl变量的方法。目标不是硬编码连接属性。请帮忙。感谢。
“JDBC:预言:薄@主机名:端口”
答案 0 :(得分:2)
您似乎使用以前的代码创建了一个字符串,包括"
和,
个字符。
答案 1 :(得分:0)
可能只是需要一些提示。但这很有效。而不是一个字符串。我将每个参数保存到变量中。
{{1}}