使用iBATIS映射到字典

时间:2020-03-06 14:33:15  来源:igfitidea点击:

给出一个简单的语句,例如:

<statement id="SelectProducts" resultMap="???">
  SELECT * FROM Products
</statement>

是否可以获取其中键为列名的字典对象列表?
IE。

var list = Mapper.QueryForList<IDictionary<string,string>>("SelectProducts", null);

IDictionary<string, string> dict = list[0];
// dict["id"] == "1"
// dict["name"] == "Some Product Name"
// dict["price"] == ".99"
// etc.

我想概括查询的结果以处理任意数量的列/列名称,而不映射到某些类的特定属性。

我意识到这里的示例将失败,因为结果集可能具有重复的(或者null)列名。我考虑过一个保存有键-值对索引列表的结果类。这里的关键是将列信息保留在某处。

解决方案

我们可以通过在resultMap配置中将class属性设置为HashTable来实现。此处提供更多详细信息。