개발/대덕인재개발원
대덕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를 왜 쓰며, 각 코드를 상세히 설명해주니 이해에 도움이 되었다