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 [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);

请让我知道这可不可以帮你。

于 2012-10-18T15:39:22.993 回答
1

在多用户系统中,可能会使用一个id/pwd部署数据源,而不同用户(不同用户id/pwd)使用相同部署的数据源获得连接。

于 2012-10-18T23:28:21.560 回答