0

问题:我将表的 SQL 语句存储在映射中,因为表的 PK 值映射到相应的插入/选择语句。但现在我遇到了一张使用复合 Key(4 Pk)的表。

现在我的逻辑基础动摇了,因为我读取的数组不能用作任何 Map 中的 Key 有什么办法可以克服吗?

我将地图声明如下

Map<String, String> pkMap= new Map<String, String>();

其中 key 是表的主键。

注意:我正在处理数据库中的少数表,并非所有表都有 4 PK,因为复合键少数可能只有 2 或 1

4

2 回答 2

2

您可以简单地使用 a作为键(如果您想支持异构类型,List<String>甚至可以使用 a)。List<Object>如果两个列表具有相同的大小并且它们的所有成员都相等,则它们是相等的。

于 2013-05-04T11:49:37.647 回答
0

如何定义一个关键类:

class DBKeys {
 private List<String> keys = new ArrayList<String>;

 public void addKeyToList(String key) {
     keys.add(key);
 }

  public List<String> getKeys() {
      return keys;
 }

 // override hashcode and equals as well
}

然后将您的地图定义为

 Map<DBKeys,String> = new HashMap<DBKeys,String>
于 2013-05-04T12:24:38.023 回答