Mobile:NEWS 2002年9月20日 00:46 AM 更新

ビジネスiアプリ入門(6)
待ち受けビジネスIMのデータベース周りの作成(3/4)


前のページ

  • 状態変更

 状態変更にはupdateを使用します。状態変更のSQL文は下記のようになりますので、登録と同様にJavaで記述します。

update user set state='仕事中' where name='uni';

  • ユーザ状態取得、メッセージ取得

 データの取得には selectを使用します。ユーザの名前と状態は下記のようなSQL文で得られます。

select name, state from user;

 Javaで結果を配列にするコードは下記のようになります。

ArrayList al = new ArrayList();

ResultSet result = state.executeQuery("select name, state from user");

while (result.next()) {
 String name = result.getString(1);
 String state = result.getString(2);
 String[] user = new String[2];
 user[0] = name;
 user[1] = state;
 al.add(user);
}
result.close();

String[][] res = new String[][al.size()];
al.toArray(res);

 メッセージ取得の場合は、結果取得のループが終わった後に、IDの最大値以下の値をdeleteを使用して削除するようにします。

delete from message where toName = '" + name + "' and id <= " + maxid

 DatabaseAccessクラスのソース全文はこちらから。

テスト実行

 できたアクセスクラス用にテストコードを書き、実行してみます。実際このアクセスクラスを使うことを想定し、その流れに沿ったテストコードを下記のように記述します。

// データベースアクセスクラス生成
DatabaseAccess da = new DatabaseAccess();

// test1を登録
boolean ok = da.registUser("test1");
System.out.println("registUser(test1) : " + ok);

// test1を再度登録を試みる → 失敗することを確認
ok = da.registUser("test1");
System.out.println("registUser(test1) : " + ok);

// test2を登録
ok = da.registUser("test2");
System.out.println("registUser(test2) : " + ok);

// メッセージを登録
da.registMessage("test1", "test2", "message1to2-1");
da.registMessage("test1", "test2", "message1to2-2");
da.registMessage("test2", "test1", "message2to1");

// test1の状態を変更
da.changeUserState("test1", "仕事中");

// 全メンバーの名前と状態を取得
String[][] userstate = da.getUserState();
for (int i = 0; i < userstate.length; i++) {
 for (int j = 0; j < userstate[i].length; j++) {
  System.out.println(i + "-" + j + " : " + userstate[i][j]);
 }
}

// test1に届いているメッセージを取得
System.out.println("message test1");
String[][] message = da.getUserMessage("test1");
for (int i = 0; i < message.length; i++) {
 for (int j = 0; j < message[i].length; j++) {
  System.out.println(i + "-" + j + " : " + message[i][j]);
 }
}

// test2に届いているメッセージを取得
System.out.println("message test2");
message = da.getUserMessage("test2");
for (int i = 0; i < message.length; i++) {
 for (int j = 0; j < message[i].length; j++) {
  System.out.println(i + "-" + j + " : " + message[i][j]);
 }
}

[福野泰介, ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.

前のページ | 3/4 | 次のページ



モバイルショップ

最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!

最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!