다연이네

[days03] PreparedStatement - 사원 추가, 수정, 삭제 본문

JDBC

[days03] PreparedStatement - 사원 추가, 수정, 삭제

 다연  2020. 11. 25. 22:47
반응형

PreparedStatement   : 성능이 아주 좋음

?의 의미 :  PreparedStatement가 사용하는 매개변수

 

 

1. PreparedStatement 사용해서 Dept테이블에 레코드 하나 추가

package days03;

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

import com.util.DBConn;

public class Ex04 {

	public static void main(String[] args) {


		String sql = "INSERT INTO dept VALUES (?, ?, ?)";
		Connection con = null;
		PreparedStatement pstmt = null;
		
		con = DBConn.getConnection();
		//stmt = con.createStatement();   executeQuery(sql);
		try {
			pstmt = con.prepareStatement(sql);
			//java.sql.SQLException: 인덱스에서 누락된 IN 또는 OUT 매개변수:: 1
			//? , ? , ? pstmt의 매개변수 설정을 안함
			//execute 하기전에 반드시 물음표들에 해당하는 파라미터 설정해야 함
			pstmt.setInt(1, 50); // 1째 ?
			pstmt.setString(2, "QC"); //2째 ?
			pstmt.setString(3, "SEOUL"); //3째 ?
			
			int rowCount = pstmt.executeUpdate();
			if (rowCount ==1) {
				System.out.println("> 부서추가 완료!!!");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				pstmt.close();
				DBConn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		System.out.println("=END=");

	}//main

}//class

2. Dept테이블에 레코드 하나 수정

package days03;

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

import com.util.DBConn;

public class Ex04_02 {

	public static void main(String[] args) {

		String sql = "UPDATE dept "
				+" SET dname = ?, loc = ? "
				+" WHERE deptno = ? ";
		Connection con = null;
		PreparedStatement pstmt = null;
		
		con = DBConn.getConnection();
		//stmt = con.createStatement();   executeQuery(sql);
		try {
			pstmt = con.prepareStatement(sql);
			//java.sql.SQLException: 인덱스에서 누락된 IN 또는 OUT 매개변수:: 1
			//? , ? , ? pstmt의 매개변수 설정을 안함
			//execute 하기전에 반드시 물음표들에 해당하는 파라미터 설정해야 함
			pstmt.setString(1, "DEVELOPER"); // 1째 ?
			pstmt.setString(2, "POHANG"); //2째 ?
			pstmt.setInt(3, 50); //3째 ?
			
			int rowCount = pstmt.executeUpdate();
			if (rowCount ==1) {
				System.out.println("> 부서수정 완료!!!");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				pstmt.close();
				DBConn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		System.out.println("=END=");

	}//main

}//class

3. Dept테이블에 레코드 삭제

package days03;

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

import com.util.DBConn;

public class Ex04_03 {

	public static void main(String[] args) {

		String sql = "DELETE FROM dept "
				+" WHERE deptno = ? ";
		Connection con = null;
		PreparedStatement pstmt = null;
		
		con = DBConn.getConnection();

		try {
			pstmt = con.prepareStatement(sql);
			pstmt.setInt(1, 50); //3째 ?
			
			int rowCount = pstmt.executeUpdate();
			if (rowCount ==1) {
				System.out.println("> 부서삭제 완료!!!");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				pstmt.close();
				DBConn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		System.out.println("=END=");

	}//main

}//class

 

반응형
Comments