로그인을 하고 다음 대기화면(WaitRoomUI.java)에서의 메뉴바에 회원 수정과 탈퇴 기능을 추가하였다.

회원수정하는 것 또한 새로운 창이 필요하여 이렇게 만들어봤다.

id는 변경이 불가능하게 하였고, pw와 이름 생년월일을 수정하여 db에 다시 저장한다.


화면 만드는 것을 포함한 전체 소스이다.

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
168
169
170
171
172
173
174
175
176
177
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
 
public class DBRevise implements MouseListener {
 
    String id = null;
    String pw, name, birth;
 
    JFrame frame;
    JPanel logPanel;
    JPanel logPanel1;
    JPanel logPanel2;
    JPanel logPanel3;
    JTextField idTf, pwTf, nameTf, birthTf = null;
    JButton okBtn;
 
    MsgeBox msgbox = new MsgeBox();
 
    Statement stmt = null;
    ResultSet rs = null;
    String url = "jdbc:oracle:thin:@203.236.209.197:1521:xe"// 오라클 포트번호1521/@이후에는 IP주소
    String sql = null;
    String sql2 = null;
    Properties info = null;
    Connection cnn = null;
 
    // id를 받아와서 그것의 정보로 pw/name/barth 수정및 삭제
    void myInfo(String id) {
        this.id = id;
 
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver"); // 알아서 conn으로 연결
            info = new Properties();
            info.setProperty("user""scott");
            info.setProperty("password""tiger");
            cnn = DriverManager.getConnection(url, info); // 연결할 정보를 가지고있는 드라이버매니저를 던진다
            stmt = cnn.createStatement();
 
            sql = "select * from joinDB where id='" + id + "'";
            rs = stmt.executeQuery(sql);
 
            while (rs.next() == true) { // 다음값의
                pw = rs.getString(2);
                name = rs.getString(3);
                birth = rs.getString(4);
            }
        } catch (Exception ee) {
            System.out.println("문제있음");
            ee.printStackTrace();
        }
 
        frame = new JFrame("회원수정");
        logPanel = new JPanel();
        logPanel1 = new JPanel(new GridLayout(41));
        logPanel2 = new JPanel(new GridLayout(41));
        logPanel3 = new JPanel();
 
        JLabel idLabel = new JLabel(" I   D   ", JLabel.CENTER);
        JLabel pwLabel = new JLabel(" P  W  ", JLabel.CENTER);
        JLabel nameLabel = new JLabel("이 름", JLabel.CENTER);
        JLabel baLabel = new JLabel("생 년 월 일 ", JLabel.CENTER);
        logPanel1.add(idLabel);
        logPanel1.add(pwLabel);
        logPanel1.add(nameLabel);
        logPanel1.add(baLabel);
 
        idTf = new JTextField(20);
        idTf.setText(id);
        idTf.setEditable(false);
        pwTf = new JTextField(20);
        pwTf.setText(pw);
        nameTf = new JTextField(20);
        nameTf.setText(name);
        birthTf = new JTextField(20);
        birthTf.setText(birth);
        logPanel2.add(idTf);
        logPanel2.add(pwTf);
        logPanel2.add(nameTf);
        logPanel2.add(birthTf);
 
        frame.add(logPanel, BorderLayout.NORTH);
        frame.add(logPanel1, BorderLayout.WEST);
        frame.add(logPanel2, BorderLayout.CENTER);
        frame.add(logPanel3, BorderLayout.EAST);
 
        JPanel logPanel4 = new JPanel();
        JLabel askLabel = new JLabel("변경하시겠습니까?");
        okBtn = new JButton("확인");
        JButton cancleBtn = new JButton("취소");
        okBtn.addMouseListener(this);         // addMouseListener이벤트
        logPanel4.add(askLabel);
        logPanel4.add(okBtn);
        logPanel4.add(cancleBtn);
        frame.add(logPanel4, BorderLayout.SOUTH);
 
        // 취소 버튼
        cancleBtn.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                frame.dispose();
                dbClose();
            }
        });
 
        frame.setBounds(450250350200);
        frame.setResizable(false);
        frame.setVisible(true);
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
    }
 
    @Override
    public void mouseClicked(MouseEvent e) {
        try {
            // 확인 버튼
            if (e.getSource().equals(okBtn)) {
                if ((idTf.getText().isEmpty()) == true || (pwTf.getText().isEmpty()) == true
                        || (nameTf.getText().isEmpty()) || (birthTf.getText().isEmpty())) {
                    msgbox.messageBox(logPanel3, "비어있는 칸이 존재합니다.");
                } else if ((birthTf.getText().length()) != 6) {
                    msgbox.messageBox(logPanel3, "생년월일 서식이 잘못되었습니다."); // 아닌경우
                } else {
                    sql = "update joinDB set pw='" + pwTf.getText() + "',name='" + nameTf.getText() + "',birth='"
                            + birthTf.getText() + "' where id='" + id + "'";
                    System.out.println(sql);
                    stmt.executeUpdate(sql);
                    msgbox.messageBox(logPanel3, "변경 되셨습니다.");
                    frame.dispose(); // 창 닫기
                    dbClose();
                }
            }
 
        } catch (Exception ee) {
            System.out.println("문제있음");
            ee.printStackTrace();
        }
    }
 
    @Override
    public void mousePressed(MouseEvent e) {
    }
    @Override
    public void mouseReleased(MouseEvent e) {
    }
    @Override
    public void mouseEntered(MouseEvent e) {
    }
    @Override
    public void mouseExited(MouseEvent e) {
    }
    public void dbClose() {
        try {
            if (rs != null)
                rs.close();
            if (stmt != null)
                stmt.close();
            if (cnn != null)
                cnn.close();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
    }
}
cs

현재 로그인된 아이디를 가져와서 db에서 찾아 나머지 내용을 불러오고,

변경된 것을 다시 저장하는 것이다.

이역시 비어있는 칸이 있어선 안되며 생년월일의 서식도 맞아야한다.


다음은 탈퇴하는 소스를 보자

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
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
import java.util.Scanner;
 
public class DBDelete {
    MsgeBox msgbox = new MsgeBox();
 
    String id = null;
 
    Statement stmt = null;
    ResultSet rs = null;
    String url = "jdbc:oracle:thin:@203.236.209.197:1521:xe"// 오라클 포트번호1521/@이후에는 IP주소
    String sql = null;
    String sql2 = null;
    Properties info = null;
    Connection cnn = null;
 
    // id를 받아와서 그것의 정보로 pw/name/birth 삭제
    int InfoDel(String id) {
        int result = 0;
        this.id = id;
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver"); // 알아서 들어간다..conn로
            info = new Properties();
            info.setProperty("user""scott");
            info.setProperty("password""tiger");
            cnn = DriverManager.getConnection(url, info); // 연결할 정보를 가지고있는 드라이버매니저를 던진다
            stmt = cnn.createStatement();
 
            sql = "delete from joinDB where id='" + id + "'";
            stmt.executeUpdate(sql);
 
            sql = "select * from joinDB where id='" + id + "'";
            rs = stmt.executeQuery(sql);
            if (rs.next() == true) { // 다음값의
                result = 0// 실패
            } else {
                result = 1// 성공
            }
        } catch (Exception ee) {
            System.out.println("문제있음");
            ee.printStackTrace();
        }
 
        return result;
    }
 
}
cs


'* Project > Chatting_Pro' 카테고리의 다른 글

서버  (0) 2016.09.07
대기화면 소스(WaitRoomUI.java)  (0) 2016.09.07
로그인 체크 DB  (1) 2016.09.07
회원가입 DB / 메시지박스  (1) 2016.09.07
전체 파일  (0) 2016.09.07

+ Recent posts