2012-10-18 85 views
2

我只是想了解數據庫連接如何通過數據源工作。爲什麼我們需要在數據源中提供密碼?

當我們設置數據源時,我們需要提供用戶名/密碼。但是,如果您想通過數據源檢索連接,我們仍然提供另一個用戶名/密碼。

datasource.getConnection(username,password) 

VS

datasource.getConnection(); 

我們爲什麼這樣做?這是多餘的嗎?

我希望有人能幫我澄清一下。

+0

爲你的問題考慮更好的標籤,它的措辭是非常通用的,沒有人可以猜測你在說什麼語言和庫。 – lanzz

回答

1

我不這麼認爲: 這是代碼獲得通過數據源的連接:

try { 

    Context initialContext = new InitialContext(); 
    DataSource datasource = (DataSource)initialContext.lookup(DATASOURCE_CONTEXT); 
    Connection con = datasource.getConnection(); 
    }catch(Exception e) {} 

現在這裏獲取連接時我沒有提供的uname/PASSW,因爲他們在已經指定mysql-ds.xml [my environ jboss,mysql]。

沒有JNDI:

oracle.jdbc.pool.OracleDataSource ds = new oracle.jdbc.pool.OracleDataSource(); 
ds.setDriverType("thin"); 
ds.setServerName("localhost"); 
ds.setPortNumber(1521); 
ds.setDatabaseName("XE"); // Oracle SID 
Connection con = ds.getConnection(user, password); 

請讓我知道,如果這有助於。

+0

謝謝你的幫助。這個api如何:datasource.getConnection(用戶名,密碼) – user1756744

+2

如果你不使用JNDI,那麼你可以使用datasource.getConnection(username,password);我在我的答案中添加了一個例子。 – Satya

0

在多用戶系統中,可能使用一個id/pwd部署數據源,並且使用相同的部署數據源通過不同用戶(不同用戶標識/ pwd)獲取連接。