Java JDBC结果集数据到HashMap
我无法将数据从ResultSet设置为HashMap 我的查询返回4条记录,但HashMap只保存最后2条记录。但是,在循环中,我可以打印4条记录数据。 有人能帮忙吗 这是我的密码:Java JDBC结果集数据到HashMap,java,mysql,jakarta-ee,jdbc,jdbctemplate,Java,Mysql,Jakarta Ee,Jdbc,Jdbctemplate,我无法将数据从ResultSet设置为HashMap 我的查询返回4条记录,但HashMap只保存最后2条记录。但是,在循环中,我可以打印4条记录数据。 有人能帮忙吗 这是我的密码: workOrderMap=new HashMap<String, Integer>(); Statement statement = serviceconnection.createStatement(); ResultSet rs = statement.executeQuery("SELECT O
workOrderMap=new HashMap<String, Integer>();
Statement statement = serviceconnection.createStatement();
ResultSet rs = statement.executeQuery("SELECT OPERATION,WORKORDERID FROM History WHERE OPERATION='CREATE'OR OPERATION='UPDATE'");
workOrderMap=new HashMap<String, Integer>();
while (rs.next()) {
workOrderMap.put(rs.getString("OPERATION"), rs.getInt("WORKORDERID"));
System.out.println(rs.getString("OPERATION")); // loops 4 times
}
System.out.println("List of Workorder id's" + workOrderMap.size()); // prints 2
workOrderMap=newhashmap();
语句Statement=serviceconnection.createStatement();
ResultSet rs=statement.executeQuery(“选择操作,从操作='CREATE'或操作='UPDATE'所在的历史记录中删除工作记录”);
workOrderMap=新的HashMap();
while(rs.next()){
workOrderMap.put(rs.getString(“操作”)、rs.getInt(“WORKORDERID”);
System.out.println(rs.getString(“操作”);//循环4次
}
System.out.println(“工单id列表”+workOrderMap.size());//印刷品2
从rs.getString(“操作”)
返回的值只有两个不同
考虑到WHERE
子句只允许有2个值,这并不奇怪:
WHERE OPERATION='CREATE' OR OPERATION='UPDATE'
在Map
中,键是唯一的,因此使用相同的键值调用put()
将覆盖前面的值
将行集转换为POJO时,我更喜欢创建一个
列表
——列表中的每个元素都是一行,关联映射中的每个条目都是列名及其值
仅供参考,您的
WHERE
子句可以更优雅地写成:
WHERE OPERATION IN ('CREATE', 'UPDATE')
因为键是相同的,所以在hashmap中只能看到2个值 范例
Map<String,Integer> workOrderMap=new HashMap<String, Integer>();
workOrderMap.put("S", 1);
workOrderMap.put("S", 1);
workOrderMap.put("S2", 1);
System.out.println(workOrderMap.size());
Map workOrderMap=newhashmap();
工作流程图放置(“S”,1);
工作流程图放置(“S”,1);
工作指令映射放置(“S2”,1);
System.out.println(workOrderMap.size());
产出:2