【问题标题】:Why do we need to provide password in datasource?为什么我们需要在数据源中提供密码?
【发布时间】:2012-10-18 15:34:00
【问题描述】:

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

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

datasource.getConnection(username,password)

datasource.getConnection();

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

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

【问题讨论】:

  • 考虑更好地标记您的问题,它的措辞非常笼统,没有人能猜出您在谈论什么语言和库。

标签: java jdbc datasource


【解决方案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);

如果这有帮助,请告诉我。

【讨论】:

  • 感谢您的帮助。这个 api 怎么样:datasource.getConnection(username,password)
  • 如果你没有使用 JNDI 那么你可以使用 datasource.getConnection(username,password) ;我刚刚在我的回答中添加了一个示例。
【解决方案2】:

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

【讨论】:

  • 我们公司也有这个。
猜你喜欢
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 2020-05-03
  • 1970-01-01
  • 2016-11-03
相关资源
最近更新 更多