English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
배치를 Statement 객체와 함께 사용하는 표준 단계 시퀀스입니다-
이 두 가지를 사용하여createStatement()메서드는 Statement 객체를 생성합니다.
자동 커밋을 false로 설정하는 것을 사용합니다 setAutoCommit()。
使用addBatch()생성된 문장 객체에 대한 메서드는 모든 수의 SQL 문장을 배치에 추가합니다.
使用executeBatch()创建的语句对象上的方法执行所有SQL语句。
最后,使用commit()方法提交所有更改。
该示例代码是根据前几章中的环境和数据库设置编写的。
复制并粘贴以下示例到JDBCExample.java中,如下编译并运行:
// 导入所需的软件包 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; if(conn!=null) // 注册JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 打开连接 System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // 创建语句 System.out.println("Creating statement..."); stmt = conn.createStatement(); // 将自动提交设置为false conn.setAutoCommit(false); // 首先,让我们选择所有记录并显示它们。 printRows(stmt); // 创建SQL语句 String SQL = "INSERT INTO Employees (id, first, last, age) " + "VALUES(200,'Zia', 'Ali', 30)"; // 위의 SQL 문장을 배치에 추가 stmt.addBatch(SQL); // 다시 하나의 SQL 문장을 생성 SQL = "INSERT INTO Employees (id, first, last, age) " + "VALUES(201,'Raj', 'Kumar', 35)"; // 위의 SQL 문장을 배치에 추가 stmt.addBatch(SQL); // 다시 하나의 SQL 문장을 생성 SQL = "UPDATE Employees SET age = " 35 " + "WHERE id = " 100"; // 위의 SQL 문장을 배치에 추가 stmt.addBatch(SQL); // 반환 값을 저장할 int[]를 생성 int[] count = stmt.executeBatch(); //변경을 적용하기 위해 명시적으로 커밋语句을 수행 conn.commit(); // 또한, 모든 레코드를 선택하고 표시하겠습니다. printRows(stmt); // 환경 정리 stmt.close(); catch(SQLException se){ } //JDBC 에러 처리 se.printStackTrace(); } //Class.forName 에러 처리 e.printStackTrace(); } //자원을 닫는 데 사용 if(conn!=null) if(stmt!=null) stmt.close(); }2} } if(conn!=null) conn.close(); catch(SQLException se){ } se.printStackTrace(); } } System.out.println("안녕히 가세요!"); }//main을 종료 public static void printRows(Statement stmt) throws SQLException{ System.out.println("가용 행 표시 중..."); // 모든 레코드를 선택하고 표시하겠습니다. String sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); 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); System.out.print(", First: " + first); System.out.println(", Last: " + last); } System.out.println(); rs.close(); }//printRows() 종료 }//JDBCExample 종료
이제 위의 예제를 다음과 같이 컴파일해 보겠습니다:
C:\>javac JDBCExample.java C:\>
실행 중JDBCExample결과는 다음과 같습니다:-
C:\>java JDBCExample 데이터베이스에 연결 중... 문장 생성... 가용 행 표시... ID: 95, Age: 2, First: Sima, Last: Chug ID: 100, Age: 18, First: Zara, Last: Ali ID: 101, Age: 25, First: Mahnaz, Last: Fatma ID: 102, Age: 3, First: Zaid, Last: Khan ID: 103, Age: 3, First: Sumit, Last: Mittal ID: 110, Age: 2, First: Sima, Last: Chug 가용 행 표시... ID: 95, Age: 2, First: Sima, Last: Chug ID: 100, Age: 35, First: Zara, Last: Ali ID: 101, Age: 25, First: Mahnaz, Last: Fatma ID: 102, Age: 3, First: Zaid, Last: Khan ID: 103, Age: 3, First: Sumit, Last: Mittal ID: 110, Age: 2, First: Sima, Last: Chug ID: 200, Age: 3, First: Zia, Last: Ali ID: 201, Age: 35, First: Raj, Last: Kumar 안녕히 가세요! C:\>