2014-11-10 2 views
2

데이터베이스에 연결하고 select 문을 실행 한 다음 해당 명령문의 결과를 JSP 페이지에 출력하려고합니다. DB에 연결할 수 있었고 명령을 실행할 수는 있지만 내 ResultSet에 아무 것도 없거나 결과를 제대로 표시하지 못했습니다.SQL 명령 실행 및 JSP 페이지에서 결과 출력

이 작업을 수행하는 방법에 대한 몇 가지 예를 살펴 보았고 코드는 거의 동일합니다. 코드를 실행할 때 결과 웹 페이지에는 출력 데이터가 있어야하는 빈 줄만 있습니다. 그러나 3 행의 빈 줄이 있는데, 이는 쿼리가 반환해야하는 튜플 수입니다. 내 코드입니다 : 나는 끝에 ;와 쿼리를 실행하려고 할 때

또한
  String query = "SELECT L.O_ID, L.INV_ID, L.OL_QUANTITY, L.OL_PRICE " 
        + "FROM ORDERS O, ORDER_LINE L, ORDERSOURCE S " 
        + "WHERE S.OS_DESC = 'Web Site' " 
        + "AND O.OS_ID = S.OS_ID " 
        + "AND L.O_ID = O.O_ID"; 
      System.out.println(query); 
      ResultSet results = statement.executeQuery(query); 
      %> 

      <table border="1" width="50%" cellspacing="1" cellpadding="0" bordercolor="black" border="1"> 
       <tr> 
        <th><font size="2"/>Order ID</th> 
        <th><font size="2"/>Inventory ID</th> 
        <th><font size="2"/>Quantity</th> 
        <th><font size="2"/>Price</th> 
       </tr> 
      <%while(results.next()) { %> 
      <tr> 
       <td><% results.getString("O_ID"); %></td> 
       <td><% results.getString("INV_ID"); %></td> 
       <td><% results.getString("OL_QUANTITY"); %></td> 
       <td><% results.getString("OL_PRICE"); %></td> 
      </tr> 
      <% } %> 

      </table> 
    </body> 
</html> 

, 그것은 실행되지 않을 것입니다. 그러나 그것을 제거했을 때 그것은 달렸다. JDBC를 사용할 때 ;으로 질의를 종료 할 필요가없는 이유가 있습니까?

답변

0

하나의 명령문 만 사용하고 있으며 스크립트를 사용하여 실행하지 않습니다. ;은 SQL 문의 구분 기호로 사용됩니다. 그래서, 당신에게는 그것은 쓸모가 없습니다. SQL Developer와 같은 클라이언트를 사용하는 경우 현재 명령문을 실행하는 대신 단추를 눌러 스크립트를 실행하면 구분 기호와 동일한 효과를 얻을 수 있습니다. 넌 그걸 알아야 해. 강조 표시된 코드는 마지막 구분 기호를 강조 표시하는 명령문 만 실행합니다.

+0

"강조 표시된 코드는 마지막 구분 기호를 강조 표시하는 명령문 만 실행합니다." 응? 그것에 대해 자세히 설명해 주시겠습니까? 나는 이해하지 못한다. – ThomYorkkke

0

이러한 결과를 표시하려면 out.print 함수를 사용해야합니다. 나는이 DB에 연결할 수 있었다

<td><% out.print(results.getString("O_ID")); %></td> 
<td><% out.print(results.getString("INV_ID")); %></td> 
<td><% out.print(results.getString("OL_QUANTITY")); %></td> 
<td><% out.print(results.getString("OL_PRICE")); %></td> 
0

하고 명령을 실행 (내 생각)하지만, 하나 내 ResultSet의 그것에 아무 상관이 :

그래서 표시하는 코드가 있어야한다 아니면하지 제대로 모든

먼저, JSP에 아무것도 인쇄되지 않는 경우, 당신은 쿼리 correctl을 형성 여부를 확인 래리 suggested.Also로 out.print()을 추가 결과를 표시입니다 y, 당신은 sql developer과 같은 인터페이스에서 확인할 수 있습니다. 구문 오류를 피하기 위해 실행하기 전에 sql 쿼리를 인쇄하는 것이 좋습니다.

또한 ';' 결국에는 이 실행되지 않습니다. 그러나 그것을 제거했을 때 그것은 달렸다. 어떤 이유가 있습니까? ';'을 사용하여 쿼리를 종료해야합니다. JDBC를 사용할 때?

당신은 세미콜론 sql 쿼리를 종료 할 필요는 jdbc는 않습니다 당신을위한 단일 쿼리의 경우 그. 살펴보기 Is the semicolon necessary in SQL?

마지막으로 jsp 파일에 자바 코드를 쓰지 말고 servlets (심지어 MVC에서는 권장하지 않음)을 사용해보십시오. How to avoid Java code in JSP files?