Java jdbctemplate使用动态sql返回多行

Java jdbctemplate使用动态sql返回多行,java,jdbctemplate,Java,Jdbctemplate,我有一个方法需要从数据库返回字符串列表 private static List<String> getUserForAccount(final String account) { String sql = "SELECT NAME FROM CLIENTS WHERE ACCOUNT = ?"; 私有静态列表getUserForAccount(最终字符串帐户){ String sql=“从帐户=?”的客户端选择名称”; } 我不确定哪种jdbcTemplate方法最适合这种

我有一个方法需要从数据库返回字符串列表

private static List<String> getUserForAccount(final String account) {
   String sql = "SELECT NAME FROM CLIENTS WHERE ACCOUNT = ?";
私有静态列表getUserForAccount(最终字符串帐户){
String sql=“从帐户=?”的客户端选择名称”;
}

我不确定哪种jdbcTemplate方法最适合这种情况。我认为我不能使用queryForList(),因为SQL有一个参数

欢迎提出任何建议

谢谢

查看API。你说“我认为我不能使用queryForList(),因为SQL有一个参数”真的没有多大意义。我认为所有的
queryForList()
都采用参数,即参数
Object[]args
,如中所示

对于
queryForList()
有许多重载方法,但我认为这正是您想要的方法。基本上,只需传递您的查询,一个参数数组,在您的情况下,它将仅是
account
,然后传递db参数。差不多

public class SomeDaoImpl extends JdbcTemplate implements SomeDao {
    private static final String NAME_BY_ACCOUNT = 
                                "SELECT NAME FROM CLIENTS WHERE ACCOUNT = ?"

    public List<Map<String, Object>> getUsernameByAccount(String account) {
        return (List<Map<String, Object>>) queryForList(
                                           NAME_BY_ACCOUNT,
                                           new Object[] { account },
                                           new int[] { Types.VARCHAR });
    }
}
public类SomeDaoImpl扩展JdbcTemplate实现SomeDao{
私有静态最终字符串名称\u按\u帐户=
“从帐户=?”的客户端选择名称”
公共列表getUsernameByAccount(字符串帐户){
返回(列表)查询列表(
按账户命名,
新对象[]{account},
新的int[]{Types.VARCHAR});
}
}
返回的键将是列的名称。然后你可以像这样迭代地图列表

List<Map<String, Object>> result = someDao.getUsernameByAccount(account);
for (Map map : result) {
    System.out.println(map.get("NAME"));
}
List result=someDao.getusernamebycount(account);
用于(映射:结果){
System.out.println(map.get(“NAME”);
}


您可能还对一些重载的
query()
方法感兴趣,这些方法采用了
PreparedStatementSetter
RowMapper
的变体。看看我上面链接的API

谢谢!是的,我的论点毫无意义。。。道歉。