java - 以编程方式设置数据源的用户名和密码

标签 java spring datasource

我需要一个数据源传递到 Spring NamedParameterJdbcTemplate 中,以便我可以对其运行参数化查询。

public void setDataSource(DataSource dataSource)
{
    this.dataSource = dataSource;
    this.jdbcTemplateObject = new NamedParameterJdbcTemplate(dataSource);
}

Set<Integer> parameters = getSomeIds();
List<TableRow> rows = this.jdbcTemplateObject.query(config.getSql(), parameters, new TableRowMapper());

现在,如果我在 Spring Xml 中设置数据源的用户名和密码,那就没问题了。

但是,我需要动态分配这些。如何配置用户名和密码?

最佳答案

当从数据源获取连接时完成 dataSource.getConnection(username, password) 。但由于 JdbcTemplate 是为您从 DataSource 获取连接的模板,因此您需要将 DataSource 封装在 UserCredentialsDataSourceAdapter 中。 ,并将适配器传递给 JdbcTemplate。

UserCredentialsDataSourceAdapter dsAdapter = new UserCredentialsDataSourceAdapter();
dsAdapter.setTargetDataSource(dataSource);
dsAdapter.setUsername(username);
dsAdapter.setPassword(password);
this.jdbcTemplate = new NamedParameterJdbcTemplate(dsAdapter);

关于java - 以编程方式设置数据源的用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30020072/

相关文章:

java - 使用 Java 套接字连接到未签名的 HTTPs 站点

java - 更改 WritableRaster 对象会影响 bufferedImage 对象

java - 动画结束时的两个 Action (setOnFinished)

java - eclipse中如何设置spring源代码进行调试

eclipse - 每次在 tomcat eclipse 中调试期间发生更改时,都会重新加载 Spring 上下文

java - 如何解决警告消息 :"No configuration found."

java - java中的重启定时器

java - Tomcat 7.0 中 Hibernate 的数据源 JNDI 配置

java - 来自字符串的数据源

grails - 为什么在我要求mysql时grails使用hsqldb?