ITWILL학원 : 19강 JSP기초 BY 정규태강사
JDBC
- JDBC활용 - import쓰는 이유, form페이지로 받은 데이터를 DB에 insert하는 방법
- JDBC활용 - JAVA에서 DB 정보 지우기 2가지방법
- JDBC활용 - DB에서 고객정보를 불러와서 HTML테이블에 담기
- JDBC활용 - TIMESTAMP주의점, JDBC에서 데이터처리
- JDBC활용 - 회원정보수정페이지만들기
- JDBC활용 - 회원목록출력하는데 관리자는 빼고 출력하기, 자바 에러 두종류
JAVA에서 DB 정보 지우기
이름과 주민번호의 입력값이 DB데이터와 일치하면 회원탈퇴를 진행하는 코드를 만들어보자.
먼저 이름과 주민번호를 사용자로부터 입력받을 수 있는 deleteForm.jsp
파일을 만든다
1 2 3 4 5 6 7 8 9 10
| <fieldset> <legend>회원정보수정</legend> <form action="deletePro.jsp" method="post" name="fr"> <h3>본인확인정보</h3> 이름 <input type="text" name="name"><br> 주민번호 <input type="text" name="jumin1"> - <input type="password" name="jumin2"><br> <p></p> <input type="submit" value="탈퇴하기"><br> </form> </fieldset>
|
2. 사용자가 작성한 데이터를 불러와서 DB에 연결하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <%//1. 변수가져오기 request.setCharacterEncoding("UTF-8"); String name = request.getParameter("name"); String jumin = request.getParameter("jumin1")+"-"+request.getParameter("jumin2"); %>
<% //2.DB연결 final String DRIVER = "com.mysql.jdbc.Driver"; final String DBURL = "jdbc:mysql://localhost:3306/jspdb"; final String DBID = "root"; final String DBPW = "1234";
Class.forName(DRIVER); Connection con = DriverManager.getConnection(DBURL, DBID, DBPW); %>
|
3. sql작성 & pstmt객체생성
이때 두가지 방법이 있다.
3-1. 바로 delete하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <% //3. sql작성 & pstmt객체생성 String sql = "delete from itwill_member where name=? && jumin=?"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, name); pstmt.setString(2, jumin);
int val = pstmt.executeUpdate(); if(val > 0){ System.out.println("실행완료(수정완료) : "+ val); %><%=name %>님, 정상적으로 탈퇴되었습니다.<% }else{ System.out.println("실행완료(수정실패) : "+ val); %>탈퇴실패<% } %>
|
3-2. select 후 delete하기
pstmt.executeUpdate();
는 return값이 int이므로 int형 변수에 넣은 뒤 if조건문을 통해 진행여부를 html페이지에서 보여줄 수 있다.
사용자입력값이 DB데이터와 일치하는지 select로 확인후 일치하면
사용자입력값이 DB데이터와 일치하는지 select로 확인후 불일치하면
DB에서 delete은 매우 신중한 작업이다.
따라서 정확한 데이터를 찾아 정확하게 처리해야하기때문에 전자보단 후자를 사용해야한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <% //3. sql작성 & pstmt객체생성 String sql = "select name jumin from itwill_member where name=?"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, name);
ResultSet rs = pstmt.executeQuery(); if(rs.next()){ //레코드셋에서 커서를 옮겨서 데이터가 있을 때 실행하겠다. //이름과 주민번호가 있는 회원의 정보가 존재한다 =>삭제 if(jumin.equals(rs.getString("jumin"))){ sql = "delete from itwill_member where name=?"; pstmt = con.prepareStatement(sql); pstmt.setString(1, name); pstmt.execute(); System.out.println("회원삭제완료"); }else{ //이름은 있지만 주민번호가 다른 경우 =>삭제동작없이 이전페이지로 이동 %> <script type="text/javascript"> alert("주민번호 오류") history.back(); </script> <% } }else{ //이름에 해당하는 주민번호가 존재하지않음 => 즉,비회원이므로 삭제동작없이 이전페이지로 이동 %> <script type="text/javascript"> alert("이름 오류") history.back(); </script> <% } %>
|