为什么我们需要在数据源中提供密码?

时间:2012-10-18 15:34:01

标签: java jdbc datasource

我只是想了解数据库连接如何通过数据源工作。

当我们设置数据源时,我们需要提供用户名/密码。但是,如果要通过数据源检索连接,我们仍然提供另一个用户名/密码。

datasource.getConnection(username,password)

VS

datasource.getConnection();

为什么我们这样做?是冗余吗?

我希望有人可以帮我澄清一下。

2 个答案:

答案 0 :(得分: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);

如果有帮助,请告诉我。

答案 1 :(得分:0)

在多用户系统中,可能使用一个id / pwd部署数据源,并且使用相同的已部署数据源由不同用户(不同用户ID / pwd)获取连接。