JAVA/HIGH JAVA

5/13 Homework - lprod테이블 추가

아잠만_ 2024. 5. 13. 12:39

문제

LPROD 테이블에 새로운 데이터 추가하기
lprod_gu와 lprod_nm은 직접 입력받아서 처리하고, lprod_id는 현재의 lprod_id값 중에 제일 큰값+1 한다
입력받은 lprod_gu가 이미 등록되어 있으면 다시 입력 받아서 처리한다.

package kr.or.ddit.basic;

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

public class JdbcTest05 {
	
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","JIN96","java");
			int max = 0;
			rs = conn.prepareStatement("select max(lprod_id) from lprod ").executeQuery();
			
			while(rs.next()) {
				max=rs.getInt(1)+1;
			}
			String gu = "";
			while(true) {
				int chk = 0;
				System.out.print("lprod_gu >> ");
				gu = scan.nextLine().toUpperCase();
				pstmt = conn.prepareStatement("select 1 from lprod where lprod_gu = ?");
				pstmt.setString(1, gu);
				rs = pstmt.executeQuery();
				while(rs.next()) {
					chk=rs.getInt(1);
				}
				if(chk==1) {
					System.out.println("중복되었습니다. 다시 입력해주세요.");
				} else {
					break;
				} 
			}
			System.out.print("lprod_nm >> ");
			String nm = scan.nextLine();
			
			String sql = "insert into lprod(lprod_id, lprod_gu, lprod_nm) values(?, ?, ?)";
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, max);
			pstmt.setString(2, gu);
			pstmt.setString(3, nm);
			
			int cnt = pstmt.executeUpdate();
			System.out.println(cnt+"행이 변경되었습니다");
			
		} catch (SQLException e) {
			// TODO: handle exception
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if(rs!=null) try {rs.close();} catch(SQLException e) {}
			if(pstmt!=null) try {pstmt.close();} catch(SQLException e) {}
			if(conn!=null) try {conn.close();} catch(SQLException e) {}
		}
	}

}