问题:我将表的SQL语句存储在映射中,因为表的PK值映射到相应的insert / select语句。但现在我遇到了一个使用复合键(4 Pk)的表格。
现在我的逻辑基础被动摇了,因为我读过一个数组不能用作任何地图中的Key我有什么方法可以过来吗?
我宣布地图如下
Map<String, String> pkMap= new Map<String, String>();
其中键是表的主键。
注意:我正在处理数据库中的几个表,并不是所有的表都有4个PK作为复合键,很少有可能只有2个或1个
答案 0 :(得分:2)
您可以简单地使用List<String>
作为密钥(如果您想支持异构类型,则可以使用List<Object>
)。如果两个列表具有相同的大小并且所有成员都相等,则它们是相同的。
答案 1 :(得分: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>