OSimpleMapperプログラミング for Java

ダウンロードと準備

  • GitHubからzipファイルをダウンロード ・・・ Zipをダウンロードしてください
  • Eclipseのプロジェクトのライブラリ設定にて、AWS-SDKのライブラリも追加されてるか確認(されてなかったら追加)
  • ダウンロードしたZipを展開し、その中のOSimpleMapper.javaをプロジェクトのソースディレクトリに置く(パッケージ名は、org.ochilab.awsのままにしておく)

サンプルプログラム(Java版)

(0)ドメインの作成

    • EclipseのAWS Explorerを利用して、先にテーブル(ドメイン)を作成しておいてください。

(おちラボ生のみ)

先生に指示されたprefixがあると思います(例:ochi_)。作成時にはそれを接頭辞としてください。

例) testTableというドメインを作りたい場合 → ochi_testTable という名前でドメインを作成する

(1)データクラス(POJO)を用意

ドメイン(テーブル)名と同じ名前のクラスを作成して下さい。

  • クラス名=ドメイン名
  • プロパティ名=Attribute名

になります。プロパティの型はすべてstringです。下記のサンプルでは、testTableというデータクラスを利用してます。

(おちラボ生のみ)

ドメイン作成時に、ドメイン名は、ochi_testTable というようにprefixをつけますが、クラス名はprefixを除いた名前にしてください。

例) ochi_testTableというドメインのためのクラスはtestTable という名前でクラスを作成します。

public class testTable {

private String id;

private String name;

private String age;


public String getItemName() {

return id;

}

public void setItemName(String itemName) {

this.id = itemName;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}


}

初期化

access_key,secret_keyは自分に与えられているもの。endpointはおちラボではsdb.amazonaws.comを利用します。

下記のprefix利用については、SimpleDBのテーブルの名前規則にprefixを利用する場合にのみ利用します。

(おちラボ生のみ)

下記後半のprefixを利用する場合の記述をして下さい。

先生に指示されたprefixがあると思います(例:ochi_)。それを代入して下さい。

String access_key = "XXXXXXXXXXXXXXXXXXX";
String secret_key = "YYYYYYYYYYYYYYYYYYYYYYY";
String endPoint ="sdb.amazonaws.com";
//通常の記述
OSimpleDB os = new OSimpleDB(access_key,secret_key,endpoint);
//prefixを利用する場合
String prefix ="ochi_"; 
OSimpleDB os = new OSimpleDB(access_key,secret_key,endpoint, prefix);

登録

testTable tb = new testTable();
tb.setAge("18");
tb.setItemName("0001"); // itemNameは必須です
tb.setName("ochi");
os.put(tb);

削除

os.delete(testTable.class, "0001");

検索(ItemName利用)

testTable tb = (testTable)os.get(testTable.class, "0003");
System.out.println("(main)name="+tb.getName());

検索(SQL利用)

List<testTable> list = os.select(testTable.class, "select * from testTable");
for(testTable tb: list)
System.out.println("name="+tb.getName());