회원가입을 위해 데이터베이스를 사용하여 사용자의 정보를 저장한다.
처음 로그인 페이지에서 회원가입 버튼을 클릭 시 새로운 회원가입의 화면이 필요하기 때문에
로그인페이지(LoginUI.java) 에서 회원가입버튼 클릭시 조인디비(DBJoin.java)가 실행된다.
→
이렇게 생긴 JFrame을 구성한후
이벤트를 생성한다.
JFrame소스는 생략하고 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 | Statement stmt = null; ResultSet rs = null; String url = "jdbc:oracle:thin:@localhost:1521:xe"; // 오라클 포트번호1521/@이후에는 IP주소 String sql = null; Properties info = null; Connection cnn = null; @Override public void mouseClicked(MouseEvent e) { // TextField 클릭시 예시지워주기 if (e.getSource().equals(idTf)) { idTf.setText(""); } else if (e.getSource().equals(pwTf)) { pwTf.setText(""); } else if (e.getSource().equals(nameTf)) { nameTf.setText(""); } else if (e.getSource().equals(birthTf)) { birthTf.setText(""); } 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 = * "create table joinDB(id varchar2(20) primary key,pw varchar2(20) not null,name varchar2(30),birth number(6))" * ; stmt.execute(sql); System.out.println("테이블생성완료"); */ // id 체크버튼 if (e.getSource().equals(checkBt)) { sql = "select * from joinDB where id='" + idTf.getText() + "'"; rs = stmt.executeQuery(sql); // 읽어오는거라 다르다 비교해//리턴타입이 ResultSet if (rs.next() == true || (idTf.getText().isEmpty()) == true) { // 이미 id가 존재한다면 msgbox.messageBox(logPanel3, "해당 ID는 사용이 불가능합니다. 다시 작성해주세요."); } else { msgbox.messageBox(logPanel3, "사용 가능한 ID 입니다."); } } // 가입 버튼 if (e.getSource().equals(joinBtn)) { sql = "select * from joinDB where id='" + idTf.getText() + "'"; rs = stmt.executeQuery(sql); // 읽어오는거라 다르다 비교해//리턴타입이 ResultSet if (rs.next() == true) { // 이미 id가 존재한다면 msgbox.messageBox(logPanel3, "ID Check가 필요합니다."); } else 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, "생년월일 서식이 잘못되었습니다."); //6자리 숫자가 아닌경우 } else { sql = "insert into joinDB values ('" + idTf.getText() + "','" + pwTf.getText() + "','" + nameTf.getText() + "','" + birthTf.getText() + "')"; stmt.executeUpdate(sql); msgbox.messageBox(logPanel3, "축하합니다.가입 되셨습니다."); frame.dispose(); // 창 닫기 dbClose(); } } } catch (Exception ee) { System.out.println("문제있음"); ee.printStackTrace(); } }// mouseClicked 이벤트 end @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 |
테이블생성하는 sql문은 작성되어 있지만 사실 db에서 미리 생성 했다.
보기로 주석처리해서 넣어둔 것이므로 테이블 생성시 저소스 그대로 실행하면 오류가 날 것이다.
텍스트필드를 클릭시 예시된 글을 지워주는 이벤트를 생성했다.
회원가입시 모든 내용을 작성해야 하며 id가 기본키로 설정했기 때문에 중복여부를 확인해야한다.
또한 생년월일의 숫자 6자리 서식도 맞아야 가입이 가능하다.
이러한 조건들을 만족했을 때 회원가입이 완료되며 데이터베이스에 insert문으로 값이 들어가게 된다.
또한 여기서 보여지는
msgbox.messageBox(logPanel3, "축하합니다.가입 되셨습니다.");
이러한 메시지박스는 따로 자바파일로 작성했다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package com.so.pro; import java.awt.Component; import javax.swing.JOptionPane; public class MsgeBox { public void messageBox(Object obj , String message){ JOptionPane.showMessageDialog( (Component)obj , message); } } | cs |
'* Project > Chatting_Pro' 카테고리의 다른 글
서버 (0) | 2016.09.07 |
---|---|
대기화면 소스(WaitRoomUI.java) (0) | 2016.09.07 |
회원 수정 DB / 회원 탈퇴 DB (1) | 2016.09.07 |
로그인 체크 DB (1) | 2016.09.07 |
전체 파일 (0) | 2016.09.07 |