본문 바로가기

JSP

[JSP/Servlet] PreparedStatement






class Test02{

Connection conn = null;

PreparedStatement pstmt = null; //한개의 sql만 수행가능

PreparedStatement pstmt2 = null; //한개의 sql만 수행가능

PreparedStatement pstmt3 = null; //한개의 sql만 수행가능

ResultSet rs = null;

public Test02() {

try {

Class.forName("oracle.jdbc.OracleDriver");

String url = "jdbc:oracle:thin:@localhost:1521:xe";

String id = "test";

String password = "1234";

conn=DriverManager.getConnection(url, id, password);

System.out.println("jdbc driver Connection");

System.out.println("");

/* String name = "호빵";

String phone = "011-3379-1555";

String addr = "Surak";

//sql문:변수가 들어갈 부분을 ?로 넣기 

String sql = "insert into members values(members_seq.nextval,?,?,?,sysdate)";

pstmt = conn.prepareStatement(sql);


    //?에 대응되는 값 넣기 ?의 대응되는 값을 pstmt.set으로 넣어야한다. (물음표의 갯수만큼)

pstmt.setString(1, name); //1번째 위치 ?에 name 변수 값 넣기

pstmt.setString(2, phone); //2번째 위치 ?에 phone 변수 값 넣기

pstmt.setString(3, addr); //3번째 위치 ?에 addr 변수 값 넣기

int n = pstmt.executeUpdate(); //statement와 다르게 sql을 넣으면 안된다 pstmt는 생성부터 갖고있다.

System.out.println(n+"명의 회원이 추가되었습니다.");*/

String sql2 = "delete from members where num=?";

pstmt2 = conn.prepareStatement(sql2);

pstmt2.setInt(1, 5);

int n1 = pstmt2.executeUpdate();

System.out.println(n1 + "명의 회원이 탈퇴되었습니다.");

String name = "호키";

String phone = "010-3553-1555";

String addr = "Surak";

int num = 4;

String sql3 = "update members set name=?,phone=?,addr=? where num=?";

pstmt3 = conn.prepareStatement(sql3);

pstmt3.setString(1, name); //1번째 위치 ?에 name 변수 값 넣기

pstmt3.setString(2, phone); //2번째 위치 ?에 phone 변수 값 넣기

pstmt3.setString(3, addr); //3번째 위치 ?에 addr 변수 값 넣기

pstmt3.setInt(4 ,num);

int n2 = pstmt3.executeUpdate();

System.out.println(n2+"의 회원정보가 업데이트 되었습니다.");

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}finally {

try {

if(pstmt3!=null) pstmt3.close();

if(pstmt2!=null) pstmt2.close();

if(pstmt!=null) pstmt.close();

if(conn!=null) conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}


public class JDBC_PreparedStatement {


public static void main(String[] args) {

new Test02();

}


}


'JSP' 카테고리의 다른 글

[EL/JSTL]  (0) 2019.01.18
[JSP/Servlet] Statement / PreparedStatement  (0) 2018.12.20
[JSP/Servlet] Select  (0) 2018.12.18
[JSP/Servlet] Oracle 연결  (0) 2018.12.18
[JSP/Servlet]페이지이동  (2) 2018.12.13