개발/대덕인재개발원

대덕241008 자바:JDBC

월은 2024. 10. 8. 23:03

<자바> 

JDBC

package kr.or.ddit.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import kr.or.ddit.util.ScanUtil;

// 사용자로부터 LPROD_ID 값을 입력받아서 입력한 값보다 
// LPROD_ID가 큰 자료들을 출력하시오.
public class JdbcTest02 {

	public static void main(String[] args) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		int num =  ScanUtil.nextInt("Lprod_ID값 입력 >> ");
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@localhost:1588/FREEPDB1", "MJY", "java");
			
			// SQL문에 데이터가 들어갈 자리를 물음표로 표시하여 작성한다 
//			String sql = "select * from lprod where lprod_id > " + num;
			String sql = "select  lprod_id, lprod_gu gu, lprod_nm " 
					+ " from lprod where lprod_id > ? ";
			
			pstmt = conn.prepareStatement(sql);
			
			// SQL문의 물음표 자리에 들어갈 데이터를 세팅한다 
			// 형식) PreparedStatament객체.set자료형이름(물음표번호, 세팅할데이터);
			// 		물음표 번호는 1부터 시작 
			pstmt.setInt(1, num);
			
			// 데이터 세팅이 완료되면 SQL문을 실행한다.
			rs = pstmt.executeQuery();
			
			System.out.println(" == 결과 == ");
			while(rs.next()) {
				System.out.println("ID : " + rs.getInt("lprod_id"));
				System.out.println("GU : " + rs.getString("gu")); //엘리어스 지정 
				System.out.println("NM : " + rs.getString(3));
				System.out.println("-----------------------------");
			}
			
					
			
		} catch (SQLException e) {
			e.printStackTrace();
		}catch (ClassNotFoundException e) {
			e.printStackTrace();
		}finally {
			//5. 자원 반납 (거꾸로: rs => prepared => conn)
			// 커넥션의 회선 수는 정해져 있으므로 사용하지 않을 때는 끊어주는 것이 중요하다 
			if(rs!=null) {
				try {rs.close(); }catch(SQLException e) {}
			} 
			if(pstmt!=null) {
				try {rs.close(); }catch(SQLException e) {}
			} 
			if(conn!=null) {
				try {rs.close(); }catch(SQLException e) {}
			} 
		
		
	}

}
}

 

package kr.or.ddit.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import kr.or.ddit.util.ScanUtil;

/*
	LPROD_ID값을 2개 입력받아서 두 값 중 작은 값부터
	큰 값 사이의 자료들을 출력하시오.
 */
public class JdbcTest03 {

	public static void main(String[] args) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		int num1 = ScanUtil.nextInt("첫번째 lprod_ID값 입력 >>");
		int num2 = ScanUtil.nextInt("두번째 lprod_ID값 입력 >>");

		int max = Math.max(num1, num2);
		int min = Math.min(num1, num2);
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@localhost:1588/FREEPDB1",
					"MJY", "java");
			
			String sql = "select * from lprod " + " where lprod_id >= ? and lprod_id <= ?";
					
			pstmt = conn.prepareStatement(sql);
			
			pstmt.setInt(1, min);
			pstmt.setInt(2, max);

			rs = pstmt.executeQuery();

			System.out.println(" ++ 결과 ++ ");
			while (rs.next()) {
				System.out.println("ID : " + rs.getInt("lprod_id"));
				System.out.println("GU : " + rs.getString("lprod_gu"));
				System.out.println("NM : " + rs.getString("lprod_nm"));
				System.out.println("-----------------------------");
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}catch (ClassNotFoundException e) {
			e.printStackTrace();
		}finally {
			if(rs!=null) {
				try {rs.close(); }catch(SQLException e) {}
			}
			if(pstmt!=null) {
				try {rs.close(); }catch(SQLException e) {}
			}
			if(conn!=null) {
				try {rs.close(); }catch(SQLException e) {}
			}
		}
		
		
	}

}

 

https://youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og&si=JAzxJWXaq6D0FHNX

 

 

JDBC 강좌/강의

 

www.youtube.com

도움이 되었던 영상)

해당 재생목록의 도입부에서 JDBC를 왜 쓰며, 각 코드를 상세히 설명해주니 이해에 도움이 되었다