Cloudant Java Client を使ってみた

Bluemix では Cloudant という NoSQL データベースが提供されています。

今回は Cloudant の Java Client を使ってみたいと思います.

他にも様々な言語の SDK が提供されています.

個人的に C# PCL が提供されているのはポイント高いです!
あと、GO lang あたりが追加されると更に便利になりますね.

Cloudant Java Client の使い方

README.md によると Bluemix への接続は以下のように記述されています.

// Note: there are some convenience methods for IBM Bluemix

// To use the URL and credentials provided in VCAP metadata:
ClientBuilder.bluemix(String vcapMetadata)
             .build();

// To use an IAM API key:
ClientBuilder.url("examplebluemixaccount.cloudant.com")
             .iamApiKey("exampleApiKey")
             .build();

しかし、これら方法はどちらも上手く動きませんでした.
1つ目は VCAP の JSON をそのまま渡しても上手くいかず.
2つ目に至っては、そもそもメソッドが存在しない…

ソースコードを読み進めたところ、URL を渡せば上手くいきそうだったので試してみました.

まずは Bluemix 上で Cloudant の資格情報を確認します.

資格情報の中の”URL”が今回欲しい情報です.

CloudantClient client = ClientBuilder.url(new URL("URL"))
	.build();

上記のように URL を指定すると Client インスタンスを取得できます.
あとは READEME.md のサンプル通りです.

// true を指定すると、DBが存在しない場合、新規作成される
Database database = client.database("transaction", true);

SampleBean bean = new SampleBean();
bean.setName("Sample");

database.save(bean);

とても簡単ですね.

1点不安な点としては、
Database の Close 処理にあたるものが見つからなかったのですが、良しなにやってくれているのだろうか?
実運用するならもう少し潜って調べたいところです.

以上です.

参考