English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JDBC Statement 객체 예제

다음은 이 세 개의 쿼리와 open 및 close 문을 사용한 예제입니다.-

  • boolean execute(String SQL):결과 집합 객체를 검색할 수 있는 경우 true를 반환하며, 그렇지 않으면 false를 반환합니다. SQL DDL 문을 실행하거나 실제 동적 SQL을 사용할 때 이 메서드를 사용합니다.

  • int executeUpdate(String SQL):SQL 문이 실행될 때 영향을 받은 행 수를 반환합니다. INSERT, UPDATE 또는 DELETE 문과 같이 영향을 받은 행 수를 얻고자 할 때 이 메서드를 사용합니다.

  • ResultSet executeQuery(String SQL):ResultSet 객체를 반환합니다. 결과 집합을 얻고자 할 때, 이 메서드를 사용하면 SELECT 문과 마찬가지입니다.

이 예제 코드는 몇 챕터 전의 환경과 데이터베이스 설정에 따라 작성되었습니다.

다음 예제를 JDBCExample.java에 복사하고 붙여넣어, 다음과 같이 컴파일하고 실행하세요:

//단계1.필요한 패키지를 가져옵니다
import java.sql.*;
public class JDBCExample {
   // JDBC 드라이버 이름과 데이터베이스 URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/EMP";
   //  데이터베이스 인증 정보
   static final String USER = "username";
   static final String PASS = "password";
   
   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      //단계2:JDBC 드라이버를 등록합니다
      Class.forName("com.mysql.jdbc.Driver");
      //단계3: 연결 설정
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);
      //단계4: 쿼리 실행
      System.out.println("Creating statement...");
      stmt = conn.createStatement();
      String sql = "UPDATE Employees set age=30 WHERE id=103";
      
      // 이게 실제 결과 집합을 반환하는지 확인하겠습니다.
      Boolean ret = stmt.execute(sql);
      System.out.println("Return value is : " + ret.toString() );
      // ID = 103의 연령을 업데이트하겠습니다;
      int rows = stmt.executeUpdate(sql);
      System.out.println("Rows impacted : " + rows );
      // 모든 레코드를 선택하고 표시하겠습니다.
      sql = "SELECT id, first, last, age FROM Employees";
      ResultSet rs = stmt.executeQuery(sql);
      //단계5: 결과 집합에서 데이터 추출
      while(rs.next()){
         //컬럼 이름으로 검색
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");
         //값 표시
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }
      //단계6: 환경 정리
      rs.close();
      stmt.close();
      conn.close();
   }catch(SQLException se){
      //JDBC 오류 처리
      se.printStackTrace();
   catch(Exception e){
      //Class.forName의 오류 처리
      e.printStackTrace();
   }finally{}}
      //자원을 닫는 데 사용됨
      try{
         if(stmt!=null)
            stmt.close();
      }2){
      
      }
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }
   }
   System.out.println("안녕히 가세요!");
}//main 종료
}//JDBCExample 종료

지금 위의 예제를 컴파일해 보겠습니다:

C:\>javac JDBCExample.java
C:\>

실행 중JDBCExample이렇게 결과가 생성됩니다:-

C:\>java JDBCExample
데이터베이스에 연결 중...
문장 생성...
반환 값은 : false
영향을 받은 행: 1
ID: 100, Age: 18, First: Zara, Last: Ali
ID: 101, Age: 25, First: Mahnaz, Last: Fatma
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 103, Age: 30, First: Sumit, Last: Mittal
안녕히 가세요!
C:\>