2013-12-10 6 views
1

오라클 데이터베이스에서 쿼리를 수행하고 결과를 표시하는 간단한 JSP 코드 단편을 만들려고합니다. 쿼리는 select, delete, alter, update 등과 같은 것일 수 있습니다. 쿼리 결과와 오류를 표시하는 일반 코드를 만드는 데 도움이 필요합니다. JSP로 Oracle (10g) 쿼리 결과를 표시하는 방법은 무엇입니까?

<%@ page language="java" import="java.sql.*" %> 
<%@page import="oracle.jdbc.driver.*" %> 
<%@page import="oracle.sql.*;" %> 

<% 

Connection conn = null; 
Statement stmt = null; 
ResultSet rset = null; 

try { 
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
    conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.22:1521:orcl", 
             "test", "testpass"); 
    stmt = conn.createStatement(); 

    String que = request.getParameter("q"); 
    rset = stmt.executeQuery (que); 

} catch (SQLException e) { 
    out.println("<P> SQL error: <PRE> " + e + " </PRE> </P>\n"); 
} finally { 
    if (rset!= null) rset.close(); 
    if (stmt!= null) stmt.close(); 
    if (conn!= null) conn.close(); 
} 

%> 

내 질문

은 다음과 같습니다 : 나는 같은 쿼리 "를 선택 실행할 때 자동으로 EMP에서 * 모든 열과 행을 표시 할 수있는 방법

  1. 여기

    는 지금까지 코딩 한 것입니다 ".
  2. 삭제/업데이트 쿼리가 올바르게 작동하는지 확인하는 방법.
  3. JSP를 사용하여 oracle 트리거를보고 변경하는 방법.

답변

1

1. 한 ResuletSetMetaData

Class.forName("oracle.jdbc.driver.OracleDriver"); 
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/XE","scott","tiger"); 
Statement stmt = conn.createStatement(); 
ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); 
if(rs.next()){ 
    // print column names 
    ResultSetMetaData rsmd = rs.getMetaData(); 
    int columnCount = rsmd.getColumnCount(); 
    for(int i=1; i<= columnCount; i++) 
     System.out.print(rsmd.getColumnName(i) + "\t"); 
    System.out.println(); 
    // print rows 
    do { 
     for(int i=1; i<=columnCount; i++) 
      System.out.print(rs.getString(i) + "\t"); 
     System.out.println(); 
    } while(rs.next()); 
} 
conn.close(); 

2.Statement의 executeUpdate의() 메소드 복귀 INT 같은 행에 영향을 미쳤다.

3 (a). 트리거 만들기

Class.forName("oracle.jdbc.driver.OracleDriver"); 
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/XE","scott","tiger"); 
Statement stmt = conn.createStatement(); 
stmt.executeUpdate("CREATE OR REPLACE TRIGGER yourtrigger BEFORE DELETE ON emp FOR EACH ROW BEGIN dbms_output.put_line('row deleted..'); END;");   
conn.close(); 

3 (b). 트리거보기

Class.forName("oracle.jdbc.driver.OracleDriver"); 
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/XE","scott","tiger"); 
Statement stmt = conn.createStatement(); 
ResultSet rs = stmt.executeQuery("select text from user_source where name = 'YOURTRIGGER'"); 
if(rs.next()) 
    System.out.println(rs.getString(1)); 
conn.close(); 
+0

고맙습니다. 3 번 지점을 간단히 설명해 주시겠습니까? 샘플 코드는 큰 도움이 될 것입니다. – ITFreak

+0

완벽. 정말 고맙습니다. – ITFreak

관련 문제