こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

データベースをランダムで読み込む

[j2SE]
Swingでアプリケーションを作っています。
問題集ソフトを作っており、データベースはAccessで作りました。
これを30問分構築しています。

画面のボタンをクリックする度に次の問題をランダムで表示したいのですが、記述が全く分からず困ってしまいました。
下記が現時点でボタンをクリックした時に設定してあるプログラムです。


//データベースに接続する(JDBC->ODBC)
try {
Connection myCon = null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
myCon = DriverManager.getConnection("jdbc:odbc:mondai");
Statement mySt = myCon.createStatement();

//データベースからデータを取得する。(SQLのSELECT文)
ResultSet myRs = mySt.executeQuery("SELECT * FROM PERSONAL_DATE");
long id = myRs.getLong("ID");
String mon = myRs.getString("問題");
mondai.setText(mon);
String senA = myRs.getString("選択支A");
sentaku1.setText(senA);
String senB = myRs.getString("選択支B");
sentaku2.setText(senB);
String senC = myRs.getString("選択支C");
sentaku3.setText(senC);
String senD = myRs.getString("選択支D");
sentaku4.setText(senD);
} catch (Exception ex) {
}

投稿日時 - 2005-02-12 22:58:37

QNo.1215681

困ってます

質問者が選んだベストアンサー

30問ランダムに取ってくるにしてもIDの付け方によって取り方が変わってくると思います。
IDが連番かつ欠落がないならば#1さんのやり方で十分だと思います。
しかしIDがランダムについていたりする場合はちょっと考えなければならないですね。

ちなみにボタンを押すたびに問題を取得するのではなく、始める際に全て取得しておく方が効率的です。(メモリの消費は多くなりますが)
その際は1問ずつをクラス化し、ArrayListなどに格納していくといいでしょう。

投稿日時 - 2005-02-13 14:02:58

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Random r = new Random(System.currentTimeMillis());

int i = r.nextInt();

これでランダムなintが取れるので、それをキー(" where ID=" + i)にDBからSelect
してきたら良いのでは。

投稿日時 - 2005-02-12 23:23:55

あなたにオススメの質問