2

データベース接続がデータソースを介してどのように機能するかを理解したいだけです。

データソースを設定するとき、ユーザー名/パスワードを提供する必要があります。ただし、データソースを介して接続を取得する場合は、別のユーザー名/パスワードが提供されます。

datasource.getConnection(username,password)

datasource.getConnection();

なぜそうするのですか?それは冗長性ですか?

誰かがそれを明確にするのを手伝ってくれることを願っています。

4

2 に答える 2

1

私はそうは思わない: これは DataSource 経由で接続を取得するためのコードです:

try {

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

ここで、接続を取得するときに uname/passw を指定しませんでした。それらは mysql-ds.xml [環境 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);

これが役立つかどうか教えてください。

于 2012-10-18T15:39:22.993 に答える
1

マルチユーザー システムでは、データ ソースが 1 つの id/pwd を使用して展開され、同じ展開されたデータ ソースを使用して異なるユーザー (異なるユーザー id/pwd) が接続を取得する可能性があります。

于 2012-10-18T23:28:21.560 に答える