couchbase
关于Couchbase Java SDK的一件整洁的事情是,它建立在出色的Rx-Java库的基础上,这为与Couchbase服务器实例进行交互提供了一种React性的方式,一旦掌握了它,它就非常直观。
考虑一个我打算存储在Couchbase中的非常简单的json文档:
{"key":"1","value":"one"}
和一个Java类来保存此json:
public class KeyVal {
private String key;
private String value;
...
}
以下是将KeyVal实例插入Couchbase存储桶的代码:
JsonObject jsonObject = JsonObject.empty().put("key", keyVal.getKey()).put("value", keyVal.getValue());
JsonDocument doc = JsonDocument.create(keyVal.getKey(), jsonObject);
Observable<JsonDocument> obs = bucket
.async()
.insert(doc);
插入的返回类型是Observable ,因此,如果需要将返回类型映射回KeyVal,则可以使用Observable类提供的广泛映射支持。
Observable<KeyVal> obs = bucket
.async()
.insert(doc)
.map(jsonDoc ->
new KeyVal(jsonDoc.id(), jsonDoc.content().getString("value"))
);
其他API遵循类似的模式,例如。 检索保存的文档:
bucket
.async()
.get(id)
.map(doc ->
new KeyVal(doc.id(),
doc.content().getString("value")));
- 如果您有兴趣进一步研究此示例,请参阅我的github存储库中的工作示例– https://github.com/bijukunjummen/sample-karyon2-couch
资源资源
- Couchbase Java SDK :http://docs.couchbase.com/developer/java-2.1/java-intro.html
- Rx-Java :https://github.com/ReactiveX/RxJava
- Couchbase网站上提供了一篇有关Rx-Java的出色而简洁的文章 :http://docs.couchbase.com/developer/java-2.0/observables.html
翻译自: https://www.javacodegeeks.com/2015/09/couchbase-java-sdk-with-rx-java.html
couchbase