簡體   English   中英

連接到數據庫時使用java.util.properties有什么好處?

[英]What is the benefit of using java.util.properties while connecting to database?

我正在閱讀《 使用Oracle JDBC版Oreilly Java編程》 ,我注意到有一個使用java.util.properties對象的示例,如下所示;

public class Connector {


    Connection con = null;
    private Properties info = new Properties();

    public void connect(){
        info.put("user", "sys as sysdba");
        info.put("password", "testpass");
        String driverName = "oracle.jdbc.driver.OracleDriver";

        try {
            Class.forName(driverName);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        String serverName = "localhost";
        String port = "1521";
        String sid = "XE";
        String url = "jdbc:oracle:thin:@" + serverName + ":" + port + ":" + sid;



        try {
            con = DriverManager.getConnection(url, info);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    public void closeConnection(){

        try {
            con.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

我檢查了API,以了解屬性的主要好處是讀取本地資源。 使用java.util.properties的Google OCI驅動程序示例比瘦驅動程序示例更多。 我的問題是;

*我應該為瘦驅動程序使用屬性嗎? *如果是,會有什么好處?

*為什么不能將完整的詳細信息轉換為必須使用String對象進行連接的屬性?

謝謝

這些屬性可以從classpath的jdbc.properties文件中加載,該文件允許您進行外部配置。 其唯一的內容可能類似於:

user=sys as sysdba
password=testpass

所以,代替

info.put("user", "sys as sysdba");
info.put("password", "testpass");

可以

info.load(getClass().getResourceAsStream("/jdbc.properties"));

(請注意,文件名是免費的,您可以選擇,只要它在運行時類路徑中就可以使用)

這樣,您每當要更改連接詳細信息時都不需要編輯,重新編譯,重新構建,對類進行操作。 您只需要編輯一個簡單的基於文本的文件。 這對於需要由不具備Java知識的人員(例如,服務器管理員)進行管理的分布式應用程序特別有用。

也可以看看:

“要使用JDBC Thin驅動程序作為SYSDBA登錄,必須將服務器配置為使用密碼文件。” http://docs.oracle.com/cd/B28359_01/java.111/b31224/dbmgmnt.htm

我正在嘗試使用瘦驅動程序以sysdba的身份連接到Oracle,但是連接失敗。 我在那里嘗試了一些步驟,但是在這些更改之后的嘗試也失敗了。

任何對此感興趣的人,也可能會對internal_logon屬性感興趣,因為提到了與登錄特定角色(例如sysdba)有關的內容,但同樣,我也沒有成功使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM