2011-01-14 99 views
0

嗨 我加載一個屬性文件來建立數據庫連接, 例如:如何解析的屬性的屬性值文件

DB1="JDBc................", username , password 

上面一行是在財產文件,但是當我調用getConnection方法,我需要發送網址,用戶名和密碼。 我該如何解析它。

+0

爲什麼不把它分成幾個屬性(網址,用戶名,密碼) – lweller 2011-01-14 10:08:52

+0

我不明白這個問題......用逗號分割字符串,就是這樣。如果第一部分是jdbc URL,其餘部分很簡單。但是,正如消費者所說,在這種情況下你應該使用三個屬性。 – tigger 2011-01-14 10:27:36

回答

1
  1. 您可以分割的條目:

    String dbProperty = prop.getProperty("DB1"); 
    String[] dbDetails = dbProperty.split(",", 3); 
    

dbDetails[0]會牽着你的JDBC...[1]username[2]password

  • 更好的是,你可能想把它們放在不同的頁面中roperties(正如lweller說)

    db.username = scott 
    db.password = tiger 
    db.url = .... 
    
  • 這樣你獲得更好的清晰度和控制。

    0

    這是更好,如果你要分析它單獨還是定義

    dburl =.... 
    username =.... 
    password = ... 
    

    ,您可以使用字符串的拆分方法,通過逗號

    分裂
    5

    你可以把你的鍵/值對屬性文件是這樣的:

    dbUrl = yourURL 
    username = yourusername 
    password = yourpassword 
    

    然後你可以將它們加載到你的應用程序從屬性文件:

    private void loadProps() { 
        try { 
         InputStream is = getClass().getResourceAsStream("database_props.properties"); 
         props = new Properties(); 
         props.load(is); 
         is.close(); 
         dbConnStr = props.getProperty("dbUrl"); 
         username = props.getProperty("username"); 
         password = props.getProperty("password"); 
        } 
        catch(IOException ioe) { 
         log.error("IOException in loadProps"); 
         for(StackTraceElement ste : ioe.getStackTrace()) 
         log.error(ste.toString()); 
        } 
    } 
    

    然後您可以使用這些值來創建您的連接。