English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
아래는 Result Set 강의에서 설명된ResultSet.CONCUR_UPDATABLE와ResultSet.TYPE_SCROLL_INSENSITIVE예제. 이 예제는 테이블에 INSERT, UPDATE 및 DELETE 작업에 대해 설명합니다.
주의해야 할 것은, 처리하는 테이블이 올바르게 주키가 설정되어 있다는 것입니다.
이 예제 코드는 전장의 환경과 데이터베이스 설정에 따라 작성되었습니다.
아래 예제 코드를 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; try{ //단계2JDBC 드라이버 등록 Class.forName("com.mysql.jdbc.Driver"); //단계3:建立连接 System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //단계4:执行查询以创建陈述 // RS示例的必需参数。 System.out.println("Creating statement..."); Statement stmt = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); //단계5:执行查询 String sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); System.out.println("List result set for reference...."); printRs(rs); //단계6:循环浏览结果集,并增加5个年龄 //移至BFR位置,以便while循环正常工作 rs.beforeFirst(); //단계7:从结果集中提取数据 while(rs.next()){ //칼럼 이름으로 검색 int newAge = rs.getInt("age") + 5; rs.updateDouble( "age", newAge ); rs.updateRow(); } System.out.println("List result set showing new ages..."); printRs(rs); // 在表中插入一条记录。 //移动以使用updateXXX()插入行并添加列数据 System.out.println("Inserting a new record..."); rs.moveToInsertRow(); rs.updateInt("id",104); rs.updateString("first","John"); rs.updateString("last","Paul"); rs.updateInt("age",40); //提交行 rs.insertRow(); System.out.println("List result set showing new set..."); printRs(rs); // 테이블에서 두 번째 기록을 제거합니다。 // 먼저 두 번째 기록의 위치를 설정합니다 rs.absolute( 2 ); System.out.println("List the record before deleting..."); //칼럼 이름으로 검색 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); //행을 제거합니다 rs.deleteRow(); System.out.println("List result set after \ deleting one records..."; printRs(rs); //단계8:환경을 정리합니다 stmt.close(); JDBC 오류를 처리합니다 conn.close(); } //catch(Exception e){ se.printStackTrace(); } //e.printStackTrace(); finally{ } //자원을 닫는 데 사용됩니다 try{ if(conn!=null) conn.close(); } se.printStackTrace(); } } System.out.println("Goodbye!"); }//main을 종료합니다 public static void printRs(ResultSet rs) throws SQLException{ //우리가 첫 번째 행에서 시작하도록 확인합니다 rs.beforeFirst(); 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); } System.out.println(); }//printRs()를 종료합니다 }//JDBCExample을 종료합니다
지금 우리는 위의 예제를 컴파일해 보겠습니다:
C:\>javac JDBCExample.java C:\>
실행 중JDBCExample그럼 다음과 같은 결과가 생성됩니다-
C:\>java JDBCExample 데이터베이스에 연결 중... 문장 생성 중... 참조를 위해 결과 집합을 보여줍니다.... ID: 100, Age: 33, First: Zara, Last: Ali ID: 101, Age: 40, First: Mahnaz, Last: Fatma ID: 102, Age: 50, First: Zaid, Last: Khan ID: 103, Age: 45, First: Sumit, Last: Mittal 새 연령을 보여주는 결과 집합을 보여줍니다... ID: 100, Age: 38, First: Zara, Last: Ali ID: 101, Age: 45, First: Mahnaz, Last: Fatma ID: 102, Age: 55, First: Zaid, Last: Khan ID: 103, Age: 50, First: Sumit, Last: Mittal 새 레코드를 삽입합니다... 새로운 집합을 보여주는 결과 집합을 보여줍니다... ID: 100, Age: 38, First: Zara, Last: Ali ID: 101, Age: 45, First: Mahnaz, Last: Fatma ID: 102, Age: 55, First: Zaid, Last: Khan ID: 103, Age: 50, First: Sumit, Last: Mittal ID: 104, Age: 40, First: John, Last: Paul 제거 전 레코드를 보여줍니다... ID: 101, Age: 45, First: Mahnaz, Last: Fatma 한 개의 레코드를 제거한 후 결과 집합을 보여줍니다... ID: 100, Age: 38, First: Zara, Last: Ali ID: 102, Age: 55, First: Zaid, Last: Khan ID: 103, Age: 50, First: Sumit, Last: Mittal ID: 104, Age: 40, First: John, Last: Paul 안녕히 가세요! C:\>