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
반응형