본문 바로가기

학원/JSP - 학원

사용자 관리 3단계 2번

728x90

 

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
package magic.member;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
 
public class MemberDBBean {
    
    private static MemberDBBean md = new MemberDBBean();
    
    public static MemberDBBean getInstance() {
        return md;
        //getInstance메소드 호출하면 바로 객체로 받을 수 있음
    }
    public Connection getConnection() throws Exception {
        Context ctx = new InitialContext();
        DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/oracle");
        return ds.getConnection();
//        Connection con = ds.getConnection();
//        return con;
        //이미 커넥션으로 받았기 때문에 커넥션 객체 따로 생성해서 받을 필요 없음
    }
    public int insertMember(MemberBean member) throws Exception{
//        StringBuffer insertQuery = new StringBuffer();
//        insertQuery.append("insert into MEMBERT values(?,?,?,?,?,?)");
        String insertQuery = "insert into MEMBERT values(?,?,?,?,?,?)";
        Connection con = null;
        PreparedStatement ps = null;
//        ResultSet rs = null;
        int re = -1;
                
        try {
            con = getConnection();
//            ps = con.prepareStatement(insertQuery.toString());
            ps = con.prepareStatement(insertQuery);
            ps.setString(1, member.getMem_uid());
            ps.setString(2, member.getMem_fwd());
            ps.setString(3, member.getMem_name());
            ps.setString(4, member.getMem_email());
            ps.setTimestamp(5, member.getMem_regdate());
            ps.setString(6, member.getMem_address());        
            ps.executeUpdate();
            re = 1;
            ps.close();
            con.close();
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        return re;    
    }
    public int confirmID(String id) throws Exception{
        String sql = "select mem_uid from MEMBERT where mem_uid=?";
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        int re=-1;
        try {
            con = getConnection();
            ps = con.prepareStatement(sql);
            ps.setString(1,id);
            rs = ps.executeQuery();
                
            if (rs.next()) {
                re = 1;
            }else {
                re = -1;
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception e) {
            e.getStackTrace();
        }
        return re;
    }
    public int userCheck(String id, String pwd) throws Exception{
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select mem_fwd from MEMBERT where mem_uid=?";
        int re = -1;
        String db_mem_pwd="";
        
        try {
            con = getConnection();
            ps = con.prepareStatement(sql);
            ps.setString(1, id);
            rs = ps.executeQuery();
            if (rs.next()) {
                db_mem_pwd = rs.getString("mem_fwd");
                if (db_mem_pwd.equals(pwd)) {
                    re=1;//둘 다 맞음
                } else {
                    re=0;//아이디는 맞는데 비밀번호는 틀림
                }
            } else {
                re=-1;//아이디가 존재하지 않음
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception e) {
            // TODO: handle exception
        }
        return re;
    }
    public MemberBean getMember(String id) throws Exception{
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select * from MEMBERT where mem_uid=?";
        MemberBean member = null;
        
        try {
            con = getConnection();
            ps = con.prepareStatement(sql);
            ps.setString(1, id);
            rs = ps.executeQuery();
            if (rs.next()) {
                member = new MemberBean();        
                member.setMem_uid(rs.getString("mem_uid"));
                member.setMem_fwd(rs.getString("mem_fwd"));
                member.setMem_name(rs.getString("mem_name"));
                member.setMem_email(rs.getString("mem_email"));
                member.setMem_regdate(rs.getTimestamp("mem_regdate"));
                member.setMem_address(rs.getString("mem_address"));        
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception e) {
            // TODO: handle exception
        }
        return member;
    }
    public int updateMember(MemberBean member)throws Exception{
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        int re = -1;
        String sql = "update MEMBERT set mem_fwd=?, mem_email=?,mem_address=? where mem_uid=?";
        
        try {
            con = getConnection();
            ps = con.prepareStatement(sql);
            ps.setString(1, member.getMem_fwd());
            ps.setString(2, member.getMem_email());
            ps.setString(3, member.getMem_address());
            ps.setString(4, member.getMem_uid());
            re = ps.executeUpdate();        
            System.out.println("변경 성공");    
            rs.close();
            ps.close();
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("변경 실패");
        }
        return re;
    }
}
 
cs

 

- updateMember 메소드 추가

 

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
<%@page import="magic.member.MemberBean"%>
<%@page import="magic.member.MemberDBBean"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<jsp:useBean id="mb" class="magic.member.MemberBean"></jsp:useBean>
<jsp:setProperty property="*" name="mb"/>
<%
    String uid = (String)session.getAttribute("uid");    
    mb.setMem_uid(uid);
    MemberDBBean manager = MemberDBBean.getInstance();
    int re = manager.updateMember(mb);
    
    if(re==1){
%>
    <script>
        alert("입력하신대로 회원 정보가 수정되었습니다.");
        document.location.href="main.jsp";
    </script>
<%        
    }else{
%>
    <script>
        alert("수정에 실패했습니다.");
        history.go(-1);
    </script>
<%                
    }
%>
 
cs

 

- 자바빈 사용해서 MemberBean값을 받는 mb 객체 생성

- 입력해서 넘어온 값들은 모두 setProperty를 통해서 세팅됨

- mb를 통해서 MemberBean에 현재 세션에 있는 mem_uid 값인 uid를 넣어줌

- MemberDBBean 타입의 참조변수 manager을 만들고, MemberDBBean을 사용할 수 있도록 함

- manager을 통해서 MemberDBBean의 메소드 updateMember에 mem_uid값이 uid인 mb를 넣어줌

- sql쿼리가 mem_uid가 내가 입력하는 값의 아이디 일 때 비밀번호, 이메일, 주소를 바꾸는 쿼리

- 여기에는 회원정보 수정란에서 입력한 정보가 들어가게되고, 수정이 완료되면 이 메소드 안에서 re에는 executeUpdate가 완료되면서 1값이 들어가게 됨

- 위의 1은 int re에서 받아주고, 메소드가 정상적으로 수행되서 re값이 1이 리턴이 되었다면 수정완료 문구가 출력

- 뭔가 잘못 된 부분이 있다면 수정 실패 문구가 출력됨

 

* 여기서 세션을 통해서 uid를 다시 넣어줘야 하는 이유는 이전에 updateMember.jsp에서 uid값을 넘겨주지 않았기 때문

728x90

'학원 > JSP - 학원' 카테고리의 다른 글

게시판 1단계 2  (0) 2022.03.25
게시판 1단계 1  (0) 2022.03.23
사용자 관리 3단계 1번  (0) 2022.03.23
사용자 관리 2단계 2번  (0) 2022.03.21
사용자 관리 2단계 1번  (0) 2022.03.21