- JSP와 데이터베이스를 연결시켜서 폼에서 데이터를 조회하고 수정하고 삭제하고자 할때 어떻게 연결시키는지 배웠다
- 회원정보 조회, 회원정보 수정, 회원탈퇴 기능을 구현할 수 있겠다
< SELECT >
- 데이터베이스에 있는 데이터를 웹 폼에서 확인하고 싶을 때 사용
<%
// 1. 드라이버 로드
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("드라이버 로드 성공!");
// 2. 디비 연결
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/jspdb", "root", "1234");
System.out.println("디비연결 성공!");
// 3. sql 구문 작성 & pstmt 객체 생성
String sql = "select * from itwill_member";
PreparedStatement pstmt = con.prepareStatement(sql);
// 4. sql 구문 실행
pstmt.executeQuery();
String id = null;
String pass = null;
String name = null;
//5. 데이터 처리
while(rs.next()){ // 데이터 있을 때
// rs.getXXXXX("컬럼명"); rs.getXXXXX(인덱스);
// DB에서 가져오는 데이터타입에 따라서 메서드변경
id = rs.getString("id");
System.out.println(id);
pass = rs.getString("pass");
out.println(pass);
name = rs.getString("name");
out.println(name);
}
%>
<hr>
아이디 : <%=id %>
- 데이터입력폼에 test 아이디를 입력하여 전송했고
- 그 결과를 select해서 보여줌
① SQL 구문 실행메서드
- .executeQuery() : SELECT - DB 동작이 바뀌지 않고 보여주는 용도
- .executeUpdate() : INSERT, UPDATE, DELETE - DB가 변하는 구문일 때
- Select는 ResultSet 쿼리
< update >
- 기존에 있던 데이터들을 수정하고 싶을 때 사용하면 된다
- SQL의 Update 쿼리 사용했음
<body>
<h1>WebContent/jsp5/updateForm.jsp</h1>
<!--
사용자의 ID, PASS 입력, 수정할 이름 입력
updatePro.jsp 페이지로 정보 전달
-->
<form action="updatePro.jsp" method="post">
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pass"><br>
수정할 이름 : <input type="text" name="name"><br>
<input type="submit" value="수정하기"><br>
</form>
</body>
<body>
<h1>WebContent/jsp5/updatePro.jsp</h1>
<%
//한글처리 (post 방식)
request.setCharacterEncoding("UTF-8");
// 전달되는 파라미터값 저장(id, pass, name)
String id = request.getParameter("id");
String pass = request.getParameter("pass");
String name = request.getParameter("name");
// 1. 드라이버 로드
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 디비 연결
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/jspdb", "root", "1234");
// 3. sql 구문 작성 & pstmt 객체 생성
String sql = "update itwill_member set name=? where id=? and pass=?";
PreparedStatement pstmt = con.prepareStatement(sql);
// ?
pstmt.setString(1, name);
pstmt.setString(2, id);
pstmt.setString(3, pass);
// 4. pstmt 실행
pstmt.executeUpdate();
%>
<h2> 회원 정보(name) 수정완료! </h2>
</body>
< delete >
- 기존에 있던 데이터를 삭제하고 싶을 때 사용하면 된다
- SQL의 DELETE 쿼리 사용했음
<body>
<h1>WebContent/jsp5/deleteForm.jsp</h1>
<!--
ID/PASS 입력받아서 deletePro.jsp 전달
-->
<fieldset>
<legend> 회원 탈퇴 </legend>
<form action="deletePro.jsp" method="post">
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pass"><br>
<input type="submit" value="수정하기"><br>
</form>
</fieldset>
</body>
<body>
<h1>WebContent/jsp5/deletePro.jsp</h1>
<%
//한글처리 (post 방식)
request.setCharacterEncoding("UTF-8");
// 전달되는 파라미터값 저장(id, pass, name)
String id = request.getParameter("id");
String pass = request.getParameter("pass");
// 1. 드라이버 로드
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 디비 연결
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/jspdb", "root", "1234");
// 3. sql 구문 작성 & pstmt 객체 생성
// String sql = "delete from itwill_member where id=? and pass=?";
String sql = "select pass from itwill_member where id=?";
PreparedStatement pstmt = con.prepareStatement(sql);
// ?
pstmt.setString(1, id);
// 4. pstmt 실행
ResultSet rs = pstmt.executeQuery();
// 5.
if(rs.next()){
// 아이디가 있다.
if(pass.equals(rs.getString("pass"))){
// 본인 - 탈퇴
// 3. sql(delete 구문)
sql = "delete from itwill_member where id=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
// 4. sql 실행
pstmt.executeUpdate();
System.out.println("삭제 성공!");
}else{
// 비밀번호 에러
out.println("비밀번호 에러");
}
}else{
// 아이디가 없다.
out.println("아이디 없음 !!");
}
%>
</body>
< DB Export/Import >
- MySQL 워크밴치에 Schemas 탭이 아닌 그 옆 Administration 탭에서 DB Export와 Import가 가능하다
- DB를 파일로 저장해서 옮기고 싶을 때 사용하면 된다
① Data Export : DB 파일 내보내기
- 스키마 선택 후 내보내고 싶은 테이블 선택
- 덤프 구조와 데이터뷰 선택
- 파일로 내보내기
- 스키마 구문 포함하기 체크
② Data Import : 데이터 가져오기
- 파일로 가져오기 (파일 저장한 위치로 설정)
- 타겟 스키마 설정
- 덤프 구조와 데이터로 가져오기
'자바 웹 개발자가 될거야 > JSP' 카테고리의 다른 글
[JSP] 회원정보 수정 / 회원정보 삭제 구현하기 (0) | 2021.12.08 |
---|---|
[JSP] 로그인페이지 / 메인 페이지 만들기 (0) | 2021.12.08 |
[JSP] JSP Mysql 연결 / 드라이버 이름 확인하기 / JSP에서 입력받아 DB로 보내기 / 워크밴치 재설치 (0) | 2021.11.23 |
[MYSQL] CLI 실행 / ' 잘못 쳤을 때 / 오라클 데이터형 비교 / 날짜타입 / 실행 단축키 (0) | 2021.11.22 |
[JSP] 쿠키 / 쿠키생성 / 쿠키전달 / 쿠키삭제 (0) | 2021.11.19 |