[英]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.