1
我無法訪問某些數據。我正在使用YCSB與許多不同的數據庫進行通信,如Cassandra和MongoDB。從抽象類檢索數據
我真的可以修改的唯一類是我的「工作量」類,它正在做一些插入和讀取操作。我使用從數據庫中讀取的方法是在類:
public void doRead(DB db)
{
String keyname = buildKeyName(keynum);
System.out.println(keyname);
HashSet<String> fields = null;
if (!readallfields)
{
// read a random field
String fieldname = "field" + fieldchooser.nextString();
fields = new HashSet<String>();
fields.add(fieldname);
}
db.read(table,keyname,fields,new HashMap<String,ByteIterator>());
}
我試圖修改代碼,以便我能讀HashMap中的內容。我刪除了db.read線,並與
HashMap<String, ByteIterator> kv_hashmap = new HashMap<String, ByteIterator>();
db.read(table, keyname, fields, kv_hashmap);
取代它,然後試圖從kv_hashmap閱讀:
System.out.println(kv_hashmap.get(fields));
但 db.read只返回一個int。 DB是一個公共抽象類,我寧願不修改,其目的是爲了跟多種數據庫:
這是db.read電話:
public abstract int read(String table, String key, Set<String> fields, HashMap<String,ByteIterator> result);
它返回,從引用javadoc:
零成功,錯誤或「未找到」時爲非零錯誤代碼。
我需要從kv_hashmap讀取值。我不明白爲什麼我不能訪問它的價值。
你的問題還不清楚。請在代碼中顯示你正在努力完成的任務以及爲什麼它不工作。 – 2012-02-22 06:28:54
謝謝,我解決了這個問題。 :) – eggonlegs 2012-02-22 06:57:22
read-Method應該執行什麼操作?它是否把所有的鍵字都放在給定的hashMap中?在閱讀之後,你想通過hashmap訪問信息,這是你的目的嗎? – 2012-02-22 07:22:14