DB
- 금액 콤마,날짜 형식 2018.03.08
- Oracle 10g 설치 2016.09.12
- DB연동 데이터 입력 2016.09.08
- 회원 수정 DB / 회원 탈퇴 DB 2016.09.07 1
- 회원가입 DB / 메시지박스 2016.09.07 1
금액 콤마,날짜 형식
Oracle 10g 설치
Oracle 10g 다운
압축풀기
다음
또 다음
SYS 및 SYSTEM 계정의 암호를 설정
추후에 잊어버릴 수 있으니 oracle 로 설정 후 다음버튼
포트번호 확인 후 설치 진행
설치하는 중
완료
데이터 베이스 홈페이지에서 확인이 가능하다.
사용자 이름은 SYSTEM 이고 암호는 oracle 로 로그인
이러한 기능들이 있어서 cmd창 외부에서도 조작이 가능하다.
cmd 창을 켜서 설치한 oracle 에 접근한다. 명령어는 sqlplus
사용자명과 암호는 DB홈페이지에 접근하던 바와 동일하게 system / oracle
system 계정으로 접속 후 최고권한 계정인 dba 계정으로 접속한다.
추후에 톰캣 또는 다른 SW와 서비스 포트가 겹칠 것을 고려하여 포트 번호를 9090으로 변경
변경 확인
exit를 통해 접속을 끊고 교육용 scott계정을 생성
scott계정의 권한 부여
scott계정으로 정상접속을 확인 시도
처음 생성한 계정이므로 테이블이 없다.
이로서 웹 개발 환경 구축을 위한 RDBMS(Oracle) 설치 및 설정이 완료되었다.
'* Programming > 웹 개발환경' 카테고리의 다른 글
톰캣 서버 및 Oracle DB 연결 테스트 (0) | 2016.09.19 |
---|---|
이클립스 내 Oracle DB 등록 (0) | 2016.09.19 |
이클립스 내 톰캣서버 등록 (0) | 2016.09.19 |
Tomcat 설치 (0) | 2016.09.12 |
JAVA EE 설치 (0) | 2016.09.12 |
DB연동 데이터 입력
- addform.jsp 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <h1>입력폼 페이지</h1> <form action="add.jsp"> <p>id:<input type="text" name="id"> </p> <p>pw:<input type="text" name="pw"> </p> <p><input type="submit" value="입 력"> <input type="reset" value="취소"></p> </form> </body> </html> | cs |
- add.jsp 파일 (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 | <%@page import="java.sql.Statement"%> <%@page import="java.sql.Connection"%> <%@page import="java.sql.DriverManager"%> <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <% String id = request.getParameter("id"); String pw = request.getParameter("pw"); System.out.println(id+" : "+pw); String url = "jdbc:oracle:thin:@localhost:1521:xe"; String user="scott"; String password = "tiger"; String sql="insert into testuser values ('"+id+"','"+pw+"')"; Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection(url,user,password); Statement stmt = conn.createStatement(); int cnt = stmt.executeUpdate(sql); if(cnt>0){ out.print("<h1>정상입력 되었습니다.</h>"); }else{ out.print("<h1>입력 실패</h>"); } %> </body> </html> | cs |
DB 에 값 넣기 전
실행
입력 완료
DB 입력 후
'* Programming > WEB' 카테고리의 다른 글
Form(회원가입) (0) | 2016.09.08 |
---|---|
Form(로그인창) (0) | 2016.09.08 |
기본 내장객체 (0) | 2016.09.08 |
스크립트릿 특징 (0) | 2016.09.08 |
Table사용(구구단 만들기) (1) | 2016.09.08 |
회원 수정 DB / 회원 탈퇴 DB
로그인을 하고 다음 대기화면(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(4, 1)); logPanel2 = new JPanel(new GridLayout(4, 1)); 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(450, 250, 350, 200); 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 |
회원가입 DB / 메시지박스
회원가입을 위해 데이터베이스를 사용하여 사용자의 정보를 저장한다.
처음 로그인 페이지에서 회원가입 버튼을 클릭 시 새로운 회원가입의 화면이 필요하기 때문에
로그인페이지(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 |