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());