JDBC

[JDBC] 회원정보 수정 하기

sagesse2021 2022. 1. 11. 17:21
반응형
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//세션값 변수에 저장
String id=(String)session.getAttribute("id");
//세션값이 없으면(null이면) 바로 로그인창으로 이동
//loginForm.jsp 이동
if(id == null){
	response.sendRedirect("loginForm.jsp");
}
%>
<h1>jsp4/main.jsp</h1>
<%=id %>님 로그인 하셨습니다.<br>
<input type="button" value="로그아웃" onclick="location.href = 'logout.jsp'"><br>
<a href="info.jsp">회원정보조회</a><br>
<a href="updateForm.jsp">회원정보수정</a><br>
<a href="deleteForm.jsp">회원정보삭제</a><br>
<a href="list.jsp">회원정보목록</a><br>

</body>
</html>

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>jsp4/updateForm.jsp</h1>
<%
//수정하기 전에 디비에 입력된 내용을 확인하고 
//수정할 부분을 수정하고 updatePro.jsp 요청

//로그인하면 페이지 상관없이 값을 유지하는 세션값 생성 "id", 아이디값
//로그인 한 회원의 정보를 가져와서 보여주고 => 수정
//Stirng id  = 세션값 가져오기
//세션에 모든형이 저장될수 있기때문에 형변환 필요
String id = (String)session.getAttribute("id"); 
//1단계  드라이버 로더
Class.forName("com.mysql.jdbc.Driver");
// 2단계 디비 연결
String dbUrl ="jdbc:mysql://localhost:3306/jspdb3";
String dbUser = "root";
String dbPass  = "1234";
Connection con = DriverManager.getConnection(dbUrl, dbUser, dbPass);
// 3단계 sql구문 만들기
String sql = "select * from member where id=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
// 4단계 실행 =>결과 저장
ResultSet rs = pstmt.executeQuery();
// 5단계 다음행(첫행)으로 이동 데이터 있으면 id,name열 접근 출력
if(rs.next()){ //데이터 접근
	%>
	<form action="updatePro.jsp" method="post">
	아이디 : <input type="text" name="id" value="<%=rs.getString("id")%>" readonly><br>
	비밀번호 : <input type="password" name="pass"><br>
	이름 : <input type="text" name="name" value="<%=rs.getString("name")%>"><br>
	<input type="submit" value="회원가입">
	</form>
	
	<%
}
%>
</body>
</html>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>jsp4/updatePro.jsp</h1>
<%
// request한글처리
request.setCharacterEncoding("utf-8");
// request 태그파라미터 가져오기 id , pass, name
String id=request.getParameter("id");
String pass=request.getParameter("pass");
String name=request.getParameter("name");
// 1단계 드라이버로더
Class.forName("com.mysql.jdbc.Driver");
// 2단계 디비연결
String dbUrl="jdbc:mysql://localhost:3306/jspdb3";
String dbUser="root";
String dbPass="1234";
Connection con=DriverManager.getConnection(dbUrl,dbUser,dbPass);
// 3단계 sql구문 id,pass일치 여부확인해서 가져오기
String sql="select * from member where id=? and pass=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pass);
// 4단계 실행 => 결과 저장
ResultSet rs=pstmt.executeQuery();
// 5단계 결과 다음행(첫번째 행) 이동 데이터 있으면 일치함
//  3단계 sql  update 수정 name=? 조건 id=?  4단계 실행 main.jsp이동
//                        없으면 "입력하신 정보 틀림" 뒤로이동
if(rs.next()){
	// 데이터 있으면 아이디 비밀번호 일치  true => 수정
// 	3단계 sql  update 수정 name=? 조건 id=?
	String sql2="update member set name=? where id=?";
	PreparedStatement pstmt2=con.prepareStatement(sql2);
	pstmt2.setString(1, name);
	pstmt2.setString(2, id);
// 	4단계 실행
    pstmt2.executeUpdate();
// 	main.jsp이동
	response.sendRedirect("main.jsp");
}else{
	%>
	<script type="text/javascript">
		alert("입력하신 정보가 틀립니다.");
		history.back();
	</script>
	<%
}
%>
</body>
</html>
반응형

회원정보 수정 버튼 클릭-updateForm.jsp로 이동

비밀번호 틀릴 경우

비밀번호 맞게 입력하고 이름 수정하기

수정하고 회원정보조회 클릭 - 이름이 수정됨(김길동→ 김길자)

반응형

'JDBC' 카테고리의 다른 글

[JDBC] 회원정보목록 만들기  (0) 2022.01.24
[JDBC] 회원정보 삭제하기  (0) 2022.01.20
[JDBC] 로그아웃 하기  (0) 2022.01.04
[JDBC] 로그인하기,회원 정보 조회하기  (0) 2021.12.25
[JDBC] 회원가입하기  (0) 2021.12.10