로그인, 회원가입 Back단

2016. 9. 27. 17:36Project/[Java] PC방 예약 관리 시스템

LoginTest.java


뷰에서 입력한 id, pwd를 DB와 비교해

같으면 TRUE, 틀리면 FALSE를 리턴해주는 클래스


<구성 요소>


1) 쿼리: 뷰에서 받아온 id 값으로 pwd를 찾는다.


2) 비교:




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
 
package com.pcroomapp.application;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
public class LoginTest {
            public static void main(String[] args) {
                        boolean test = login("admin""1234");
                        System.out.println("로그인결과:" + test);
            }
 
            public static boolean login(String id, String pwd) {
                        String url = "jdbc:mysql://localhost:3306/PCROOM_DB" + "?useUnicode=true&characterEncoding=utf8"// DB서버
                                                                                                                                                                                                                                                                                                              // 주소
                        String uid = "root";
                        String upw = "";
 
                        boolean flag = false;
 
                        Connection conn = null;
                        PreparedStatement pstmt = null;
                        ResultSet rs = null;
                        String sql = "select pwd from user where id=?";
                        String getPass = null;
 
                        try {
                                    //쿼리 실행
                                    Class.forName("com.mysql.jdbc.Driver");
                                    conn = DriverManager.getConnection(url, uid, upw);
                                    pstmt = conn.prepareStatement(sql);
                                    pstmt.setString(1, id);
                                    rs = pstmt.executeQuery(); 
 
                                    //쿼리 결과값과 뷰에서 받아온 pwd값을 비교 
                                    if (rs.next()) {
                                                getPass = rs.getString("pwd");
                                                if (getPass.equals(pwd)) {
                                                            flag = true;
                                                }
 
                                    }
                        } catch (Exception e) {
                                    e.printStackTrace();
                                    
                                    //쿼리 실행 후 모두 닫아줌
                        } finally {
                                    try {
                                                if (rs != null) {
                                                            rs.close();
                                                }
                                                if (pstmt != null) {
                                                            pstmt.close();
                                                }
                                                if (conn != null) {
                                                            conn.close();
                                                }
                                    } catch (Exception e) {
                                                e.printStackTrace();
                                    }
                        }
                        return flag;
            }
}
 
cs




RegiForm.java
회원가입 창 제공, '등록' 버튼 누르면 insertMember 실행


<회원가입 구조>

RegiForm => Db01User(bean 클래스) => InsertMember(쿼리 실행) => MySQL DB






<복습>


*전역변수: 클래스 안 모든 메소드가 사용 가능한 변수

**지역변수: 메소드 안에서만 사용 가능한 변수

***다른 클래스 자원(전역변수, 메소드) 사용하기 위해선 객체 생성부터 해야

****bean클래스: 여러 클래스 간에 데이터 공유할 수 있게 해줌


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
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
 
import com.pcroomapp.member.Db01User;
 
public class RegiForm extends JFrame implements ActionListener{
          JTextField tf1, tf2, tf3, tf4, tf5;
          JLabel l1, l2, l3, l4, l5;
          JButton bt1, bt2;
          JFrame fr = new JFrame(); 
          //Frame은 전역변수에 있어야함
          
          public RegiForm(){
                    fr.setBounds(00300400);
                    fr.setLayout(null);
                    
                    l1 = new JLabel("사용할 아이디");
                    l1.setBounds(505010030);
                    fr.add(l1);
                    
                    tf1 = new JTextField();
                    tf1.setBounds(15050 , 10030);
                    fr.add(tf1);
                    
                    l2 = new JLabel("비밀번호");
                    l2.setBounds(5010010030);
                    fr.add(l2);
                    
                    tf2 = new JTextField();
                    tf2.setBounds(150100 , 10030);
                    fr.add(tf2);
                    
                    l3 = new JLabel("이름");
                    l3.setBounds(5015010030);
                    fr.add(l3);
                    
                    tf3 = new JTextField();
                    tf3.setBounds(150150 , 10030);
                    fr.add(tf3);
                    
                    l4 = new JLabel("나이");
                    l4.setBounds(5020010030);
                    fr.add(l4);
                    
                    tf4 = new JTextField();
                    tf4.setBounds(150200 , 10030);
                    fr.add(tf4);
                    
                    l5 = new JLabel("전화 번호");
                    l5.setBounds(5025010030);
                    fr.add(l5);
                    
                    tf5 = new JTextField();
                    tf5.setBounds(150250 , 10030);
                    fr.add(tf5);
                    
                    bt1 = new JButton("등록");
                    bt1.setBounds(503008040);
                    fr.add(bt1);
                    
                    bt2 = new JButton("취소");
                    bt2.setBounds(1503008040);
                    fr.add(bt2);
                    
                    fr.setVisible(true);
                    bt1.addActionListener(this);
                    bt2.addActionListener(this); 
                    //add액션리스너(this): 이 클래스에서 정한 행동 취한다.
          }
 
          public static void main(String[] args){
                    new RegiForm();
          }
 
          @Override
          public void actionPerformed(ActionEvent e) {
                    
                    if(e.getSource().equals(bt1)){
                              //TF에서 얻은 값으로 빈 클래스를 set한다.
                              Db01User db = new Db01User();
                              db.setU_id(tf1.getText());
                              db.setU_password(tf2.getText());
                              db.setU_name(tf3.getText());
                              //String을 int에 넣기 위해 Integer.parseInt로 감싸줌
                              db.setU_age(Integer.parseInt(tf4.getText()));
                              db.setU_phone(tf5.getText());
                              
                              //insert()에 생성'했던' 빈 클래스 담아 보낸다.
                              new InsertMember().insert(db);
                    }else if(e.getSource().equals(bt2)){
                              //프레임 창 끄기
                              fr.dispose();
                              
                    }        
          }
}
 
cs


InsertMember.java
INSERT 쿼리에 bean클래스에서 get한 데이터 넣어줌




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.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
import com.pcroomapp.member.Db01User;
//INSERT 쿼리 실행
//RegiForm에서 입력한 정보 저장
//이러한 정보를 SQL문 ?에 채워줌
 
public class InsertMember {
          String url = "jdbc:mysql://localhost:3306/PCROOM_DB" + "?useUnicode=true&characterEncoding=utf8";
          String uid = "root";
          String upw = "";
 
          // 회원등록 창에서 생성한 DB를 파라미터로 받아야함
          public void insert(Db01User db) {
                    Connection conn = null;
                    PreparedStatement pstmt = null;
                    String sql = "INSERT INTO USER(id, pwd, name, age, phone, mileage) VALUES(?, ?, ?, ?, ?, 0)";
                    try {
                              Class.forName("com.mysql.jdbc.Driver");
                              conn = DriverManager.getConnection(url, uid, upw);
 
                              String id = db.getU_id();
                              String pwd = db.getU_password();
                              String name = db.getU_name();
                              int age = db.getU_age();
                              String phone = db.getU_phone();
 
                              pstmt = conn.prepareStatement(sql);
                              pstmt.setString(1, id);
                              pstmt.setString(2, pwd);
                              pstmt.setString(3, name);
                              pstmt.setInt(4, age);
                              pstmt.setString(5, phone);
                              pstmt.executeUpdate();
 
                    } catch (Exception e) {
                              e.printStackTrace();
                    }
          }
 
          public static void main(String[] args) {
                    new InsertMember();
          }
 
}
 
cs










'Project > [Java] PC방 예약 관리 시스템' 카테고리의 다른 글

로그인, 회원가입 뷰  (0) 2016.09.27
DB 구축  (0) 2016.09.27
OverView  (0) 2016.09.27