【发布时间】:2016-09-06 08:56:16
【问题描述】:
我想知道如何将查询的结果集作为地图返回。
这是我的查询,其中“nameCodesString”是字符串列表,例如('raul', 'peter', 'shawn'):
try (PreparedStatement stmt = conn.prepareStatement("select n.CODE, l.VALUE"
+ " from TNAME n join TPROPERTIES l on n.UIDPK = l.OBJECT_UID"
+ " where n.CODE IN (" + nameCodesString + ")")) {
try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
log.info("rs {}",rs);
nameCode = rs.getString(1);
displayName = rs.getString(2);
Person.add(new PersonDTO(nameCode, displayName, ""));
}
}
}
结果应该是一个代码和一个值。我不确定如何在与数据库的一个连接中完成所有这些操作。
【问题讨论】:
-
你所做的与准备好的语句无关
-
显示'nameCodesString'的值
-
类似于:('raul', 'peter', 'shawn')。第二个表包含 displayName。
-
显然,您的实际问题是如何将两列
ResultSet转换为Map。然后,您的问题和标题中的其他所有内容都已过时且令人分心。源是PreparedStatement(以某种方式抵消其目的)的事实,以及您将IN运算符与字符串列表一起使用的事实都与ResultSet的处理无关。跨度>