//문제 ) 사용자로부터 Lprod_id 값을 입력받아 입력한 값보다 Lprod_id 값이 큰 자료들을 출력하시오.
package kr.or.ddit.basic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
//문제 ) 사용자로부터 Lprod_id 값을 입력받아 입력한 값보다 Lprod_id 값이 큰 자료들을 출력하시오.
public class JdbcTest02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// DB 작업에 필요한 객체
System.out.println("1 ~ 9까지의 정수를 입력하세요 > ");
int num = sc.nextInt();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1. 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2. db 연결 -> Connection 객체 생성
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "Aurora", "java");
// 3-1 실행할 SQL 문 작성
String sql = "select * from lprod";
System.out.println("실행한 SQL 문 : " + sql);
// 3-2 Statement 객체 생성 => Connection 객체를 이용
stmt = conn.createStatement();
// 4. SQL 문을 db 서버로 전송해서 실행하고 결과를 얻기
rs = stmt.executeQuery(sql);
// 추가 사용자로부터 입력받기
// 5. 결과처리
while (rs.next()) {
if (rs.getInt(1) > num) { // 만약 sql 문에 where 절을 사용하지 않고 이런방법으로하면 데이터를 읽어오고 나가야하는데
// 도 소모가 많아서 where 절을 써서 sql 을 검색하는 것이 훨씬 좋은 방법이다.
System.out.println("Lprod_id : " + rs.getInt("lprod_id")); // 소문자써도되고 대문자써도됨
System.out.println("Lprod_gu : " + rs.getString(2));
System.out.println("Lprod_nm : " + rs.getString("lprod_nm"));
System.out.println("--------------------------------------------------");
}
}
System.out.println("출력 끝");
} catch (SQLException e) {
// TODO: handle exception
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 6. 사용했던 자원 반납하기 시작한 순서와 반대로 닫아준다.
if (rs != null)
try {
rs.close();
} catch (SQLException e) {
}
if (stmt != null)
try {
stmt.close();
} catch (SQLException e) {
}
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
}
}
}
}
// 문제 2 ) lprod_id 값 2개를 차례로 입력받아서 두 값 중 작은값부터 큰값사이의 자료들을 출력하시오.
package kr.or.ddit.basic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
// 문제 2 ) lprod_id 값 2개를 차례로 입력받아서 두 값 중 작은값부터 큰값사이의 자료들을 출력하시오.
public class JdbcTest03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
System.out.println("첫번째 Lprod_id 입력 > ");
int num1 = sc.nextInt();
System.out.println("두번째 Lprod_id 입력 > ");
int num2 = sc.nextInt();
if (num1 > num2) {
int numfor1 = num1;
num1 = num2;
num2 = numfor1;
}
/* max = Math.max(num1, num2);
min = Math.min(num1, num2);
*/
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "Aurora", "java");
String sql = "select * from lprod where lprod_id between " + num1 + " and " + num2;
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
/*방법1
* Scanner sc = new Scanner(System.in);
* System.out.println("1 ~ 9까지의 정수를 입력하세요 > "); int num1 = sc.nextInt();
* System.out.println("1 ~ 9까지의 정수를 입력하세요 > "); int num2 = sc.nextInt();
*/
/*
* if ( num1 > num2) { int numfor1 = num1;
*
* num1 = num2 ; num2 = numfor1;
*
* }
*/
while (rs.next()) {
/*
* //방법1 if (rs.getInt("lprod_id") >= num1 && rs.getInt("lprod_id") <= num2) {
* System.out.println("Lprod_id : " + rs.getInt("lprod_id"));
* System.out.println("Lprod_gu : " + rs.getString(2));
* System.out.println("Lprod_nm : " + rs.getString("lprod_nm"));
* System.out.println("--------------------------------------------------"); }
*/
// 방법2
System.out.println("Lprod_id : " + rs.getInt("lprod_id"));
System.out.println("Lprod_gu : " + rs.getString(2));
System.out.println("Lprod_nm : " + rs.getString("lprod_nm"));
System.out.println("--------------------------------------------------");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 6. 사용했던 자원 반납하기 시작한 순서와 반대로 닫아준다.
if (rs != null)
try {
rs.close();
} catch (SQLException e) {
}
if (stmt != null)
try {
stmt.close();
} catch (SQLException e) {
}
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
}
}
}
}
댓글
댓글 쓰기