JDBC 명령문 개체 인스턴스
다음은 다음 세 가지 쿼리를 사용하고 개방 및 종료 지침의 예는 다음과 같습니다.
부울 execute (String SQL) : resultSet 객체를 검색 할 수있는 경우 부울 값 true를 반환합니다. 그렇지 않으면 False를 반환합니다. 이 방법을 사용하여 SQL DDL 문을 실행하거나 실제 동적 SQL을 사용할 때.
int executeUpdate (String SQL) : 영향을받는 SQL 문에 의해 실행 된 행 수를 반환합니다. 이 메소드를 사용하여 실행하고 영향을받는 SQL 문 (예 : 삽입, 업데이트 또는 삭제 명령문)을 가져 오기를 바랍니다.
resultSet executeQuery (String SQL) : resultSet 객체를 반환합니다. SELECT 문을 사용하는 것처럼 결과 세트를 얻으려면이 메소드를 사용하십시오.
이전 장의 환경 및 데이터베이스 설치를 기반으로 한이 샘플 코드가 작성되었습니다.
다음 예제 jdbcexample.java, 다음과 같이 컴파일하고 실행하십시오.
// 1 단계. 가져 오기 필수 패키지 java.sql.*; public class jdbcexample {// jdbc 드라이버 이름 및 데이터베이스 URL 정적 최종 문자열 jdbc_driver = "com.mysql.jdbc.driver"; 정적 최종 문자열 db_url = "jdbc : mysql : // localhost/emp"; // 데이터베이스 자격 증명 정적 최종 문자열 user = "사용자 이름"; 정적 최종 문자열 pass = "비밀번호"; public static void main (String [] args) {Connection Conn = null; 문자 stmt = null; {// 2 단계 : jdbc driver class.forname을 등록합니다 ( "com.mysql.jdbc.driver"); // 3 단계 : Connection System.out.println을 엽니 다 ( "데이터베이스 연결 ..."); conn = drivermanager.getConnection (db_url, user, pass); // 4 단계 : query system.out.println을 실행합니다 ( "statement ..."); stmt = conn.createstatement (); 문자열 sql = "직원 업데이트는 나이 = 30인데 id = 103"; // 실제 결과 세트를 반환하는지 확인하겠습니다. 부울 ret = stmt.execute (SQL); System.out.println ( "반환 값은" + ret.toString ()); // id = 103으로 레코드의 연령을 업데이트하겠습니다. int rows = stmt.executeUpdate (SQL); System.out.println ( "행에 영향을 미쳤다 :" + 행); // 모든 레코드를 선택하고 표시하겠습니다. SQL = "ID, 첫 번째, 마지막, 직원의 연령 선택"; resultSet rs = stmt.executeQuery (SQL); // 5 단계 : 결과 세트에서 데이터 추출 while (rs.next ()) {// 열별로 검색 int id = rs.getint ( "id"); int age = rs.getint ( "Age"); 문자열 first = rs.getString ( "첫 번째"); 문자열 last = rs.getString ( "last"); // 디스플레이 값 값 system.out.print ( "id :" + id); System.out.print ( ", 나이 :" + age); System.out.print ( ", 첫 번째 :" + first); System.out.println ( ", 마지막 :" + last); } // 6 단계 : 정리 환경 rs.close (); stmt.close (); conn.close (); } catch (sqlexception se) {// jdbc se.printstacktrace ()의 오류 핸들. } catch (예외 e) {// class.forname e.printstacktrace ()의 오류를 처리합니다. } 마침내 {// 마지막으로 자원을 닫는 데 사용되는 블록 {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // 우리가 할 수있는 것은 없습니다 {if (conn! = null) conn.close (); } catch (sqlexception se) {se.printstacktrace (); } // 종료 마침내 try} // END TRY SYSTEM.out.println ( "Goodbye!"); } // end main} // end jdbcexample이제 위의 예를 다음과 같이 컴파일하십시오.
C :> javac jdbcexample.java
jdbcexample을 실행할 때 다음과 같은 결과가 발생합니다.
C :> Java jdbcexample
데이터베이스에 연결 ... 명세서 생성 ... 반환 값은 : 거짓말로 인한 영향 : 1ID : 100, 나이 : 18, 첫 번째 : Zara, 첫 번째 : Aliid : 101, Age : 25 : 25, First : Mahnaz, Last : 102, Age : 30, First : Zaid, Last : Khanid : 103, Age : 30, First : Sumit, Last : Mittalgodbye!
JDBC CallableStatement 객체 인스턴스
다음은 다음 getempname ()와 함께 CallableStatement를 사용하여 MySQL 저장 프로 시저의 예입니다.
저장된 절차가 EMP 데이터베이스에서 작성되었는지 확인하십시오. MySQL 쿼리 브라우저를 사용하여 수행 할 수 있습니다.
Delimiter $$ drop procedure`emp`.` getempname` $$가 존재하는 경우``getempname` $$는 create process`emp`.`getempname` (emp_id int, out emp_first varchar (255)) 직원에서 emp_first로 먼저 선택을 시작합니다.
이 스크립트 코드는 이전 장의 환경 및 데이터베이스 설치를 기반으로 작성되었습니다.
다음 예제 jdbcexample.java, 다음과 같이 컴파일하고 실행하십시오.
// 1 단계. 가져 오기 필수 패키지 java.sql.*; public class jdbcexample {// jdbc 드라이버 이름 및 데이터베이스 URL 정적 최종 문자열 jdbc_driver = "com.mysql.jdbc.driver"; 정적 최종 문자열 db_url = "jdbc : mysql : // localhost/emp"; // 데이터베이스 자격 증명 정적 최종 문자열 user = "사용자 이름"; 정적 최종 문자열 pass = "비밀번호"; public static void main (String [] args) {Connection Conn = null; CallableStatement stmt = null; {// 2 단계 : jdbc driver class.forname을 등록합니다 ( "com.mysql.jdbc.driver"); // 3 단계 : Connection System.out.println을 엽니 다 ( "데이터베이스 연결 ..."); conn = drivermanager.getConnection (db_url, user, pass); // 4 단계 : query system.out.println을 실행합니다 ( "statement ..."); 문자열 sql = "{call getempname (?,?)}"; stmt = conn.preparecall (SQL); // 매개 변수에서 먼저 바인딩 한 다음 파라미터 int empid = 102를 바인딩합니다. stmt.setint (1, empid); // 이것은 ID가 102로 설정됩니다. // 실행 메소드를 사용하여 저장 프로 시저를 실행합니다. System.out.println ( "저장 프로 시저 실행 ..."); stmt.execute (); // getxxx 메서드로 직원 이름을 검색하십시오 String empname = stmt.getString (2); System.out.println ( "id id id id id id eM :" + empid + "는" + empname); stmt.close (); conn.close (); } catch (sqlexception se) {// jdbc se.printstacktrace ()의 오류 핸들. } catch (예외 e) {// class.forname e.printstacktrace ()의 오류를 처리합니다. } 마침내 {// 마지막으로 자원을 닫는 데 사용되는 블록 {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // 우리가 할 수있는 것은 없습니다 {if (conn! = null) conn.close (); } catch (sqlexception se) {se.printstacktrace (); } // 종료 마침내 try} // END TRY SYSTEM.out.println ( "Goodbye!"); } // end main} // end jdbcexample이제 위의 예를 다음과 같이 컴파일하십시오.
C :> javac jdbcexample.java
jdbcexample을 실행할 때 다음과 같은 결과가 발생합니다.
C :> Java jdbcexample
데이터베이스에 연결 ... 명령문 작성 ... 저장 프로 시저 실행 ... ID로 EMP 이름 : 102 is Zaidgoodbye!