當我們開發數據庫系統的時候,我們要通過JDBC連接數據庫,這個時候我們可能會寫出這樣的類似代碼
public class BasicConnection { 
    private String dbDriver; 
    private String dbURL; 
    private String dbUser; 
    private String dbPassWord; 
    public static void main(String args[]) { 
       
    } 
    public BasicConnection { 
        init(); 
    } 
    private void init() { 
       try { 
            // set the properties 
            this.dbDriver = "Oracle.jdbc.driver.OracleDriver"; 
            this.dbURL = "jdbc:oracle:thin:@127.0.0.1:1521:DEV2"; 
            this.dbUser = "monkey"; 
            this.dbPassword = "password"; 
            // load the driver 
            Class.forName(dbDriver); 
        } catch (Exception e) { 
            throw new RuntimeException("UNABLE TO INIT, EXITING..."); 
        } 
    } 
    private Connection getConnection() 
        throws SQLException { 
        return DriverManager.getConnection(dbURL, dbUser, dbPassword); 
    } 
} 
這樣的代碼,工作起來沒有什么問題。但是他存在的缺點就是dbDriver等屬性都是硬編碼的,當你的數據庫的地址改變,用戶名改變的情況下,這個代碼就不能正常的工作了。你必須重新編譯這個代碼。
    在java.util包內有一個Properties類,他擴展了Hashtable。可以用來存儲類似于上述情況的數據。你必須要預備一個文本文件,比如config.props,在文件里面寫好你要配置的數據。例如
dbDriver=oracle.jdbc.driver.OracleDriver 
dbURL=jdbc:oracle:thin:@127.0.0.1:1521:DEV2 
dbUser=monkey 
dbPassword=password 
使用Properties類非常的簡單,你只需要首先把這個文件轉換成InputStream,然后調用Properties的成員方法load(InputStream is),這樣就把數據設置好了,當我們要讀取的時候使用getProperty(String key)就可以了,返回值為String類型。注重Properties只能存儲String類型的對象。
這樣我們就可以提供一個新的方法來讀取文件中的數據了,而不是使用硬編碼的方式。下面給出改進后的程序
private void init() { 
        try { 
            String propsfilename = "config.props"; 
            InputStream is = getClass().getResourceAsStream(propsfilename); 
            Properties p = new Properties(); 
            p.load(is); 
新聞熱點
疑難解答