如何在Java中将Oracle连接字符串保存到变量
我可以在DriverManager.getConnection参数中使用变量使其成为动态的吗如何在Java中将Oracle连接字符串保存到变量,java,oracle,database-connection,connection-string,Java,Oracle,Database Connection,Connection String,我可以在DriverManager.getConnection参数中使用变量使其成为动态的吗 String connstring = null; Connection conn = null; try { conn = DriverManager.getConnection ("jdbc:oracle:thin:@hostname:port:sid","uname","pword
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();
}
但是,当我尝试将连接字符串封装到一个变量时,如下面的代码所示。我得到一个“调用中的无效参数”
我打印出了变量,它与第一种方法的引号和所有内容完全相同
我还尝试了一种不同的方法,如下面的方法。这次我得到一个“指定的Oracle URL无效”
我已经研究了10g的oracle url,它似乎是有序的。下面是我如何初始化dbaseurl变量的。目标不是硬编码连接属性。请帮忙。谢谢
“jdbc:oracle:thin@hostname:port“您似乎用以前的代码创建了一个字符串,包括
”
和,
字符。可能只需要一些提示。但这很有效。我将每个参数保存到了一个变量中,而不是一个字符串
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();
}
好的。基于此,将连接字符串放在变量中,然后从get连接调用它是不可行的。但是,我也尝试了这种方法,但仍然无法工作conn=DriverManager.getConnection(“\”jdbc:oracle:thin:\”+host+“:“+port+”:“+sid+”\”+“+”,“+uname+”,“+“+”\”+“\”+“\”+pword+”);如果将这些值设置为a、b、c…,则该字符串的值为:
“jdbc:oracle:thin:“a:b:c”、“d”、“e”
。即,它包含“
和,
字符。这些不应该在您的连接字符串中。
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;
}
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();
}