JDBCTemplate查询多次使用参数

时间:2014-08-11 03:25:06

标签: java mysql sql jdbctemplate

在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=?" 

由于我只传递带有一个元素(用户名)的字符串数组,我该如何构建查询?

1 个答案:

答案 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?