티스토리 뷰
프로그래밍/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 |
댓글
