티스토리 뷰


기본적인 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
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함