gpt4 book ai didi

java - jdbctemplate使用动态sql返回多行

转载 作者:行者123 更新时间:2023-12-01 12:49:19 25 4
gpt4 key购买 nike

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

private static List<String> getUserForAccount(final String account) {
String sql = "SELECT NAME FROM CLIENTS WHERE ACCOUNT = ?";

}

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

欢迎任何建议。

谢谢

最佳答案

查看 JdbcTemplate API。您认为“我认为我不能使用 queryForList(),因为 SQL 有一个参数” 确实没有多大意义。我认为所有queryForList()接受参数,即参数Object[] args ,如

queryForList()有很多重载方法但我想这就是你想要的。基本上只是传递你的查询,一个参数数组,它只是 account在你的情况下,并传递 db Types (int)争论。类似的东西

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 });
}
}

返回的键将是列的名称。然后你可以迭代 map 列表,例如

List<Map<String, Object>> result = someDao.getUsernameByAccount(account);
for (Map map : result) {
System.out.println(map.get("NAME"));
}
<小时/>

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

关于java - jdbctemplate使用动态sql返回多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24365406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com