로그인, 회원가입 Back단
2016. 9. 27. 17:36ㆍProject/[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(0, 0, 300, 400); fr.setLayout(null); l1 = new JLabel("사용할 아이디"); l1.setBounds(50, 50, 100, 30); fr.add(l1); tf1 = new JTextField(); tf1.setBounds(150, 50 , 100, 30); fr.add(tf1); l2 = new JLabel("비밀번호"); l2.setBounds(50, 100, 100, 30); fr.add(l2); tf2 = new JTextField(); tf2.setBounds(150, 100 , 100, 30); fr.add(tf2); l3 = new JLabel("이름"); l3.setBounds(50, 150, 100, 30); fr.add(l3); tf3 = new JTextField(); tf3.setBounds(150, 150 , 100, 30); fr.add(tf3); l4 = new JLabel("나이"); l4.setBounds(50, 200, 100, 30); fr.add(l4); tf4 = new JTextField(); tf4.setBounds(150, 200 , 100, 30); fr.add(tf4); l5 = new JLabel("전화 번호"); l5.setBounds(50, 250, 100, 30); fr.add(l5); tf5 = new JTextField(); tf5.setBounds(150, 250 , 100, 30); fr.add(tf5); bt1 = new JButton("등록"); bt1.setBounds(50, 300, 80, 40); fr.add(bt1); bt2 = new JButton("취소"); bt2.setBounds(150, 300, 80, 40); 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 |