如何在Java中将Oracle连接字符串保存到变量

时间:2017-10-19 20:42:39

标签: 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");                             
               //(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:预言:薄@主机名:端口”

2 个答案:

答案 0 :(得分:2)

您似乎使用以前的代码创建了一个字符串,包括",个字符。

答案 1 :(得分:0)

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

{{1}}