Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式设置数据源的用户名和密码_Java_Spring_Datasource - Fatal编程技术网

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

Java 以编程方式设置数据源的用户名和密码,java,spring,datasource,Java,Spring,Datasource,我需要一个数据源来传递到SpringNamedParameterJdbcTemplate,以便对其运行参数化查询 public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; this.jdbcTemplateObject = new NamedParameterJdbcTemplate(dataSource); } Set<Integer> parameters =

我需要一个数据源来传递到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());
public void setDataSource(数据源数据源)
{
this.dataSource=数据源;
this.jdbcTemplateObject=新名称参数jdbctemplate(数据源);
}
设置参数=getSomeIds();
List rows=this.jdbcTemplateObject.query(config.getSql(),parameters,new TableRowMapper());
现在,如果我在SpringXML中为数据源设置用户名和密码,就可以了


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

从数据源获取与的连接时完成。但是,由于JdbcTemplate是为您从数据源获取连接的模板,因此您需要将数据源封装在一个容器中,并将适配器传递给JdbcTemplate

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

你的意思是你想
@注入
@自动连线
它?(或者您需要用户名、密码等的
@值
)。我应该提到,如果有多个
数据源
,您还需要一个
@限定符
。这可能是一个指南。不要使用SpringXML——使用SpringJavaConfig。这样,您的所有配置都是编程的,您就不会有这些问题。