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

标签 java jdbc datasource

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

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

datasource.getConnection(username,password)

对比

datasource.getConnection();

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

我希望有人能帮我澄清这一点。

最佳答案

我不这么认为: 这是通过 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);

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

关于java - 为什么我们需要在数据源中提供密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12958327/

相关文章:

java - 如何使用 JDBC 连接到 SQL Server

swift - 为什么我不能直接分配dataSource?

java - Apache POI中的多个列标签

java - 如何使用 Application.properties 文件在 Spring Boot 应用程序中设置多个 View 解析器

java - 错误: Client does not support authentication protocol requested by server; consider upgrading MySQL client

java - 关于我的错误,如何在 tomcat 中配置 jndi?

c# - 电灯开关数据源错误中的共享点

java - 如何故意让 kubernetes 中的工作失败?

java - 如何从 Java 调用正在运行的 C# 应用程序中的方法?

java - JDBC getGeneratedKeys() 方法是否始终与插入元素的顺序相同