Java 如何将结果集的内容作为映射返回?
我想知道如何将查询结果集作为映射返回。 这是我的查询,其中“nameCodesString”是字符串列表,例如Java 如何将结果集的内容作为映射返回?,java,sql,oracle,java-8,Java,Sql,Oracle,Java 8,我想知道如何将查询结果集作为映射返回。 这是我的查询,其中“nameCodesString”是字符串列表,例如('raul'、'peter'、'shawn'): 结果应该是一个代码和一个值。我不确定如何在与数据库的一个连接中完成这一切。您好,这是我的建议 String req="select n.CODE, l.VALUE from TNAME n join" +" TPROPERTIES l on n.UIDPK = l.OBJECT_UID " +" where n.CODE
('raul'、'peter'、'shawn')
:
结果应该是一个代码和一个值。我不确定如何在与数据库的一个连接中完成这一切。您好,这是我的建议
String req="select n.CODE, l.VALUE from TNAME n join"
+" TPROPERTIES l on n.UIDPK = l.OBJECT_UID "
+" where n.CODE IN ?";
PreparedStatement stmt=null;
ResultSet rs=null;
try{
stmt=conn.prepareStatement(req);
stmt.setString(1, nameCodesString);
rs=stmt.executeQuery();
while(rs.next()){
nameCode = rs.getString(1);
displayName = rs.getString(2);
Person.add(new PersonDTO(nameCode, displayName, ""));
}
}
catch(SQLException ex){
System.out.println(ex);
}
finally{
if(rs!=null){
try{
rs.close();
}
catch(SQLException ex){}
}
if(stmt!=null){
try{
stmt.close();
}
catch(SQLException ex){}
}
if(conn!=null){
try{
conn.close();
}
catch(SQLException ex){}
}
}
这只是我的建议,我希望它能给你一个提示!
致以最诚挚的问候……我不明白如何使用准备好的报表。最后,我决定不使用它们,而是坚持执行查询字符串:
Map<String, String> personDetails = new Hashmap();
try (Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select n.CODE, l.VALUE"
+ " from TNAME n join TPROPERTIES l on n.UIDPK = l.OBJECT_UID"
+ " where n.CODE IN (" + nameCodesString + ")")) {
while (rs.next()) {
nameCode = rs.getString(1);
displayName = rs.getString(2);
personDetails.put(nameCode, displayName);
}
}
Map personDetails=newhashmap();
try(Connection conn=dataSource.getConnection();
语句stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(“选择n.CODE,l.VALUE”
+“从TNAME n加入n.UIDPK=l.OBJECT\u UID上的属性l”
+其中n.CODE以(“+nameCodesString+”)形式出现){
while(rs.next()){
nameCode=rs.getString(1);
displayName=rs.getString(2);
personDetails.put(名称代码、显示名称);
}
}
您所做的与准备好的语句无关向我显示“nameCodesString”的值类似:(“raul”、“peter”、“shawn”)。第二个表包含displayName。显然,您实际的问题是如何将两列ResultSet
转换为Map
。然后,你的问题和标题中的所有其他内容都过时了,令人分心。源是PreparedStatement
(以与其目的相反的方式使用)这一事实,您在操作符中使用和字符串列表也与处理结果集
没有任何关系。我强烈建议您了解…以及地图在这里的位置?我认为此人就是地图,另一方面,我请他显示该类的所有代码。谢谢
Map<String, String> personDetails = new Hashmap();
try (Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select n.CODE, l.VALUE"
+ " from TNAME n join TPROPERTIES l on n.UIDPK = l.OBJECT_UID"
+ " where n.CODE IN (" + nameCodesString + ")")) {
while (rs.next()) {
nameCode = rs.getString(1);
displayName = rs.getString(2);
personDetails.put(nameCode, displayName);
}
}