티스토리 뷰
프로그래밍/JDBC
JDBC ! JDBC 실습 ( Database, DB연동, Connection, PreparedStatement, ResultSet)
나는연어다 2017. 6. 13. 21:08기본적인 JDBC실습
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ExampleOJDBC01{ public static void main(String[] args) { final String DB_URL = "jdbc:oracle:thin:@localhost:1521:orcl"; final String DB_USER = "scott"; // 데이터베이스 유저 아이디(현재 오라클에서 제공하는 기본ID) final String DB_PASSWORD = "tiger"; // 데이터베이스 유저 패스워드(현재 오라클에서 제공하는 기본PW) Connection conn = null; // JDBC의 정보를 가지는 인터페이스 PreparedStatement pstmt=null; // SQL을 미리 준비시키고 // 실행시에 매개변수를 받아 사용하는 방식 // 쿼리 실행 후 해당 쿼리의 결과물을 받아올 수 있다. ResultSet rs= null; // statement의 쿼리 실행 결과를 받아서 // 컬럼 정보 및 로우 정보를 Cursor를 이용해 관리한다. try { // 라이브러리로 활용할 클래스를 로딩(필수) // jdbc를 활용하기 전에 반드시 써야 한다. // 한번만 해주면 된다. // 라이브러리가 제대로 로드가 되지 않으면 ClassNotFoundException 예외 발생 Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("라이브러리 로드 성공"); // 연결정보를 가지고 실제 데이터베이스에 접속 // 연결정보 및 쿼리 실행을 할 수 있는 Connection 인터페이스의 구현 객체가 리턴된다. conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); System.out.println("접속 성공"); String sql="SELECT * FROM EMP"; // SQL 작성부분 pstmt = conn.prepareStatement(sql); // prepareStatement에 쿼리 등록 rs= pstmt.executeQuery(); // 쿼리 실행 후 ResultSet 형태로 리턴 // ResultSet에 들어있는 쿼리 실행 결과를 컬럼명을 이용하여 데이터 빼내기. // rs.next()가 작동할 때마다 Cursor가 움직이다가 더이상 빼내올 데이터가 없으면 false 리턴 while(rs.next()){ String empno = rs.getString("EMPNO"); String ename = rs.getString("ENAME"); int sal = rs.getInt("SAL"); System.out.println("사번: "+empno+" 이름: "+ename+"\t급여: "+sal); } // JDBC 사용이 끝났으면 반드시 닫아준다. // 안닫게 될 경우 다른사람이 connection 인터페이스 구현객체를 사용할 수 없다. // error 발생! rs.close(); pstmt.close(); conn.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); System.out.println("라이브러리 로드 실패"); } catch (SQLException e){ e.printStackTrace(); System.out.println("접속 실패"); } } }
PreParedStatement의 setString을 사용하는 JDBC실습
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ExampleOJDBC02 { public static void main(String[] args) { final String DB_URL = "jdbc:oracle:thin:@localhost:1521:orcl"; final String DB_USER = "scott"; // 데이터베이스 유저 아이디(현재 오라클에서 제공하는 기본ID) final String DB_PASSWORD = "tiger"; // 데이터베이스 유저 패스워드(현재 오라클에서 제공하는 기본PW) Connection conn =null; // JDBC의 정보를 가지는 인터페이스 PreparedStatement pstmt = null; // SQL을 미리 준비시키고 // 실행시에 매개변수를 받아 사용하는 방식 // 쿼리 실행 후 해당 쿼리의 결과물을 받아올 수 있다. ResultSet rs = null; // statement의 쿼리 실행 결과를 받아서 // 컬럼 정보 및 로우 정보를 Cursor를 이용해 관리한다. try{ // 라이브러리로 활용할 클래스를 로딩(필수) // JDBC를 활용하기 전에 반드시 써야한다. // 한번만 해주면 된다. // 라이브러리가 제대로 로드가 되지 않으면 ClassNotFoundException 예외 발생 Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("라이브러리 로드 성공"); // 연결정보를 가지고 실제 데이터베이스에 접속 // 연결정보 및 쿼리 실행할 수 있는 Connection 인터페이스의 구현 객체가 리턴된다. conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); System.out.println("접속 성공"); String sql ="SELECT * FROM EMP WHERE DEPTNO = ? AND SAL > ?"; // SQL 작성 부분 pstmt = conn.prepareStatement(sql); // prepareStatement에 쿼리등록 // pstmt를 활용할 인자 대입 // ? 의 순서에 따라서 번호를 지정하여 쿼리문에 필요한 인자들을 입력할 수 있다. pstmt.setString(1, "20"); pstmt.setString(2," 1000"); rs = pstmt.executeQuery(); //쿼리 실행 후 ResultSet형태로 리턴 // ResultSet에 들어있는 쿼리 실행결과를 컬럼명을 이용해 데이터 빼내기 // rs.next()가 작동할 때마다 Cursor가 움직이다가 더 이상 뺴내올 데이터가 없으면 false 리턴 while(rs.next()){ String ename = rs.getString("ENAME"); String empno = rs.getString("EMPNO"); System.out.println("부서번호: [ "+empno+" ] 사원이름: [ "+ename+" ]"); } }catch(ClassNotFoundException e){ e.printStackTrace(); System.out.println("라이브러리 로드 실패"); }catch(SQLException e){ e.printStackTrace(); System.out.println("접속 실패"); } finally{ try{ // JDBC 사용이 끝났으면 반드시 닫아준다. // 안닫게 될 경우 다른사람이 Connection 인터페이스 구현 객체를 사용할 수 없다. // error 발생! rs.close(); pstmt.close(); conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } }
반응형
LIST
'프로그래밍 > JDBC' 카테고리의 다른 글
JDBC ! JDBC에서 사용하는 객체 ( DriverManager, Connection, Statment, PrepareStatement, CallableStatement, ResultSet ) (5) | 2017.06.12 |
---|---|
JDBC ! JDBC ( Java Database Connectivity) (0) | 2017.06.11 |
댓글