2011-08-21 5 views
-1

jsp와 servlets을 사용하는 프로젝트와 oracle 10g을 액세스 레이어로 사용하고 있습니다. 레코드가 삽입 될 때 자동으로 증가하는 데이터베이스의 필드에 시퀀스를 만들었습니다. 시퀀스가 ​​데이터베이스에 문자열로 저장됩니다. 이제 서블릿을 사용하여 이러한 시퀀스 요소를 무작위로 선택해야합니다.임의의 자바 문자열 선택

어떻게 할 수 있습니까?

+3

이것은 JSP/서블릿 문제가 아닙니다. 'main()'메소드를 사용하여 일반 바닐라 자바 ​​클래스에서 그렇게 할 때 똑같은 문제가 발생할 것이다. 귀하의 문제는 SQL 영역에서 더 많이 발생합니다. "SQL을 사용하여 * n * 임의의 행을 어떻게 선택합니까?"와 같이 질문을 재구성 할 것을 제안합니다. 그런 다음 일반적인 방법으로 JDBC를 사용하여 SQL을 실행하면됩니다. JDBC 코드 (일반적인 Java 클래스 또는 Servlet 클래스)를 호출하는 위치와 상관없이 동일한 결과를 제공합니다. – BalusC

답변

0

간단한 구글 검색은 다음 쿼리를 알려준 :

SELECT column FROM 
    (SELECT column FROM table 
    ORDER BY dbms_random.value) 
WHERE rownum <= 10 

이 (오라클) 10 개 randow의에는 table.column 값을 선택합니다.

당신은 더 많은 열을 필요로하는 경우 :

SELECT * FROM 
    (SELECT column1, column2, column3 FROM table 
    ORDER BY dbms_random.value) 
WHERE rownum <= 10 

그냥이 쿼리를 실행 JDBC를 사용합니다.