在JDBCTemplate中,我正在调用
public <T> List<T> query(String sql, Object[] args, RowMapper<T> rowMapper) throws DataAccessException {
return query(sql, args, new RowMapperResultSetExtractor<T>(rowMapper));
}
带
getJdbcTemplate().query(usersByUsernameQuery, new String[] {username}, new RowMapper<UserDetails>()
我的问题是我只能访问 usersByUsernameQuery 参数,我想使用&#39;用户名&#39;变量两次。例如:
usersByUsernameQuery = "Select * from ... ... where someColumn=? or anotherColumn=?"
由于我只传递带有一个元素(用户名)的字符串数组,我该如何构建查询?
答案 0 :(得分:6)
您可以在jdbcTemplate中传递两次相同的参数..
getJdbcTemplate().query(usersByUsernameQuery, new String[] {username, username}, new RowMapper<UserDetails>()
这完全有效且有效。
或者,如果您可以使用不同的jdbcTemplate.query变体,则可以浏览以下主题
How to execute IN() SQL queries with Spring's JDBCTemplate effectivly?