一部のデータへのアクセスに問題があります。私はYCSBを使用して、CassandraやMongoDBなどのさまざまなデータベースと対話しています。抽象クラスからのデータの取得
私が本当に変更できる唯一のクラスは、いくつかの挿入と読み取りを行っている私の "Workload"クラスです。私は、データベースからの読み取りに使用していますメソッドは、クラスである:
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>());
}
私はハッシュマップの内容を読み取ることができるように、私はコードを変更しようとしました。
System.out.println(kv_hashmap.get(fields));
だけintを返しdb.read:私はその後kv_hashmapから読み取ろうとしましたdb.read行を削除し、
HashMap<String, ByteIterator> kv_hashmap = new HashMap<String, ByteIterator>();
db.read(table, keyname, fields, kv_hashmap);
でそれを置き換えます。 DBは、私はむしろ修正しないでしょうパブリック抽象クラスであり、その目的は、さまざまなデータベースに話をすることです:返す
public abstract int read(String table, String key, Set<String> fields, HashMap<String,ByteIterator> result);
から引用する:
これは、呼び出しをdb.readものですjavadoc:
成功した場合はゼロで、エラーの場合はゼロ以外のエラーコードまたは「見つからない」。
私はkv_hashmapから値を読み取る必要があります。なぜ私はその値にアクセスできないのか分かりません。
ご質問は不明である読み取るために何がある文句を言いません。あなたが達成しようとしていることとそれがなぜ機能していないのかをコードで示してください。 –
ありがとう、私は質問を解決しました。 :) – eggonlegs
read-methodの実装は何をすべきですか?指定されたhashMapにテーブルのフィールドを持つすべてのキーを配置しますか?読み込みの呼び出しの後、あなたはhashmapを介して情報にアクセスしたいのですが、その目的は? –