2013-06-12 3 views
0

나는 이미지와 그 정보를 웹 페이지에 무작위로 표시하려고합니다. 시간이 지나면 자동으로 브라우저에서 이미지와보기를 변경해야합니다. 내가 어떻게 자바와 오라클 데이터베이스 을 사용하면 난 그냥 타이머를 만든 다음 아래의 쿼리를 호출하려고 시도 그렇게 할 수 있지만 내가 전화 타이머 실행 방법 다음자바를 사용하여 오라클 데이터베이스에서 임의로 이미지를 선택하는 방법

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(); 
    } 
} 
    }; 
+2

'작동하지 않습니다'는 오류 메시지가 아닙니다. 실제로는 어떻게됩니까? 쿼리 문자열에서'\ n'에 대해 불평합니까? 그것은 당신이'getInt()'이고'getString()'호출이 당신의 쿼리에없는 참조 필드 이름이라고 불평합니까? 다른 것? –

+0

방금 ​​코드를 편집했습니다 .... 매 10 분마다 이전 값보다 다른 값을 얻을 수있는 방법을 모르겠다. – suhas

+0

타이머가 여기에서 도움이되는 것을 보지 못한다 - Java가 서버에서 실행되는 동안 이미지는 브라우저의 클라이언트에 표시됩니다. 새 이미지를 표시하려면 Javascript 및 Ajax를 사용하여 클라이언트 측에서 일종의 다시로드를 트리거해야합니다. – Gimby

답변

1

1 단계 : 약간의 자바 목록에서 상점 ID의 값

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

3 단계 : 함수를 작성 화재 SQL 쿼리

select image_id from ImageTable ; 

2 단계 이미지 테이블에서 아이디의를 가져 주어진 목록에서 무작위 번호를 생성하는 방법

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

4 단계 : 랜덤 아이디 생성 방법에 ID의리스트를 전달

단계 5 : 단계 6

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

randomIdmethod

반환 된 랜덤 ID를 검색 다음 파라미터

같다 통과 이미지 테이블로부터 이미지를 페치
관련 문제