2012-01-18 41 views
2

那么,这一定很容易,但我无法在任何地方找到解决方案。而且我仍然不足以使用Java来找出实现方法。如何转换哈希表列表中的ResultSet?

到目前为止,我可以循环访问ResultSet,我已经为自己感到非常自豪。

我想要一个List,这样我就可以简单地循环它,然后调用类似myRow.get('ColumnName');的东西。

此外,还有另一种数据类型,而不是Hashtable来存储键/值。有小费吗?

非常感谢!

+1

您可能会考虑HashMap,它将值存储在键/值对中。 – kosa 2012-01-18 22:07:05

回答

4

myRow.get('ColumnName');已经在ResultSet,看到getObject(String columnLabel)。现在,ResultSetMap之间的一个区别是ResultSet不是(总是)随机访问。一旦你走过一排,使用ResultSet.next(),它可能不允许你“倒带”到前一行。这是有充分的理由的:ReusltSet中元素的数量可以是任意大的,并且映射列表上的内存需求将是禁止的。

如果你决定将其转换为List<Map<String, Object>>,那么你应该创建自己的实现的ListMap两者,使得Map<String /*columnName*/, Integer /*Index*/>是给出了一个列名的每个阵列中的索引。我是从经验上讲的,我不得不改变一个实现,其中迭代列名称太昂贵。

+0

你说得对。我可以直接从ResultSet调用get方法。谢谢! – Cybrix 2012-01-18 22:43:26

1

我会用HashMapHashtable是老同学......

例子:

HashMap<String, Object> p = new HashMap<String, Object>(); 
p.put("ResultSetkey1","ResultSetvalue1"); 
p.put("ResultSetkey2","ResultSetvalue2"); 
+0

关于HashMap的好处 – Cybrix 2012-01-18 22:14:19