0

Web ページに画像とその情報をランダムに表示したい。一定時間ごとに、画像が自動的に変更され、ブラウザで表示されます。JavaとOracleデータベースを使用してそれを行うにはどうすればよいですか?タイマーを作成してから、以下のクエリを呼び出そうとしましたが、機能しません

SELECT * FROM ( SELECT name FROM employee ORDER BY dbms_random.value ) WHERE rownum <= 1000

そして、タイマー実行メソッドで、このクエリを次のように呼び出します。

  TimerTask task = new TimerTask(){
    public void run()
    {
     //execute the code for every 10 mins

       Timer timer = new Timer();


      timer.scheduleAtFixedRate(task, 0, 10 * 60 * 1000); // period is  10 mins 

       try
      {

         Class.forName("oracle.jdbc.driver.OracleDriver");
         Connection con=DriverManager.getConnection("jdbc:oracle:thin:
         @localhost:1521:orcl","Admin","secret");
         Statement st=con.createStatement();
         System.out.println("connection established successfully...!!");     

         ResultSet rs=st.executeQuery("SELECT  *\n" +
  "FROM    (\n" +
   "        SELECT  name\n" +
     "        FROM    employee\n" +
    "        ORDER BY\n" +
   "                dbms_random.value\n" +
    "        )\n" +
   "WHERE rownum <= 1000");

     //   pw.println("<table border=1>");
             while(rs.next())
             {

            System.out.println("<br>"+"Id :"+rs.getInt("name"));
             }
//         pw.println("</table>"); 
    }
    catch (Exception e){
        e.printStackTrace();
    }
}
    };
4

1 に答える 1

1

ステップ 1 : SQL クエリを起動して、イメージ テーブルから ID を取得します

select image_id from ImageTable ;

ステップ 2 : ID の値を Java リストに格納する

ArrayList<Integer> IdList = new ArrayList<Integer>();
while(rs.next())
{
idList.add(rs.getString(1));
}

ステップ 3 : 与えられたリストからランダムな no を生成する関数を書く

int randomIdMethod(ArrayList<Integer> idList)
{
// logic
return randomImageId;
}

ステップ 4 : ID のリストをランダム ID ジェネレーター メソッドに渡す

ステップ 5 : randomIdmethod から返されたランダム ID を取得する

Strnig newQuery = "select image fom ImageTable where imageId=randomImageId" ;

ステップ 6 : is as パラメータを渡してイメージ テーブルからイメージを取得します

于 2013-06-12T09:23:11.030 に答える