電子書籍の厳選無料作品が豊富!

[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) {
}

A 回答 (2件)

30問ランダムに取ってくるにしてもIDの付け方によって取り方が変わってくると思います。


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

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

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



int i = r.nextInt();

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!