티스토리 뷰

Web(국비)/DB연결

DB-연결 WebApp08

Xion 2019. 10. 28. 15:44
SELECT USER
FROM DUAL;
--==>> SCOTT

SELECT *
FROM TAB;

SELECT *
FROM TBL_MEMBER;

--기존 테이블 제거
DROP TABLE TBL_MEMBER PURGE;
--==>> Table TBL_MEMBER이(가) 삭제되었습니다.

-- 휴지통 비우기
PURGE RECYCLEBIN;
--==>> RECYCLEBIN이(가) 비워졌습니다.

-- 기존 스퀀스 제거
DROP SEQUENCE MEMBERSEQ;
--==>> Sequence MEMBERSEQ이(가) 삭제되었습니다.

--------------------------------------------

CREATE TABLE TBL_MEMBER
( SID   NUMBER
, NAME  VARCHAR2(30)
, TEL   VARCHAR2(40)
, CONSTRAINT MEMBER_SID_PK PRIMARY KEY(SID)

);
--==>> Table TBL_MEMBER이(가) 생성되었습니다.

--○ 시퀀스 생성
CREATE SEQUENCE MEMBERSEQ
NOCACHE;
--==>> Sequence MEMBERSEQ이(가) 생성되었습니다.

--○ 데이터 입력 쿼리문 구성
INSERT INTO TBL_MEMBER(SID,NAME,TEL)
VALUES(MEMBERSEQ.NEXTVAL, '강초롱','010-1111-1111');
--==>> 1 행 이(가) 삽입되었습니다.
--> 한 줄 구성
INSERT INTO TBL_MEMBER(SID,NAME,TEL) VALUES(MEMBERSEQ.NEXTVAL, '강초롱','010-1111-1111')
;
--○ 테이블 전체 조회 쿼리문 구성
SELECT SID,NAME,TEL
FROM TBL_MEMBER;
--==>> 1   강초롱   010-1111-1111

-->한줄구성
SELECT SID,NAME,TEL FROM TBL_MEMBER ORDER BY SID
;
-->1   강초롱   010-1111-1111

--○인원 수 확인 쿼리문 구성
SELECT COUNT(*) AS COUNT
FROM TBL_MEMBER;
-->한줄구성
SELECT COUNT(*) AS COUNT FROM TBL_MEMBER
;
-->1

--커밋
COMMIT;
















오라클 WebApp08_scott.sql

SELECT USER
FROM DUAL;
--==>> SCOTT

SELECT *
FROM TAB;

SELECT *
FROM TBL_MEMBER;

--기존 테이블 제거
DROP TABLE TBL_MEMBER PURGE;
--==>> Table TBL_MEMBER이(가) 삭제되었습니다.

-- 휴지통 비우기
PURGE RECYCLEBIN;
--==>> RECYCLEBIN이(가) 비워졌습니다.

-- 기존 스퀀스 제거
DROP SEQUENCE MEMBERSEQ;
--==>> Sequence MEMBERSEQ이(가) 삭제되었습니다.

--------------------------------------------

CREATE TABLE TBL_MEMBER
( SID   NUMBER
, NAME  VARCHAR2(30)
, TEL   VARCHAR2(40)
, CONSTRAINT MEMBER_SID_PK PRIMARY KEY(SID)

);
--==>> Table TBL_MEMBER이(가) 생성되었습니다.

--○ 시퀀스 생성
CREATE SEQUENCE MEMBERSEQ
NOCACHE;
--==>> Sequence MEMBERSEQ이(가) 생성되었습니다.

--○ 데이터 입력 쿼리문 구성
INSERT INTO TBL_MEMBER(SID,NAME,TEL)
VALUES(MEMBERSEQ.NEXTVAL, '강초롱','010-1111-1111');
--==>> 1 행 이(가) 삽입되었습니다.
--> 한 줄 구성
INSERT INTO TBL_MEMBER(SID,NAME,TEL) VALUES(MEMBERSEQ.NEXTVAL, '강초롱','010-1111-1111')
;
--○ 테이블 전체 조회 쿼리문 구성
SELECT SID,NAME,TEL
FROM TBL_MEMBER;
--==>> 1   강초롱   010-1111-1111

-->한줄구성
SELECT SID,NAME,TEL FROM TBL_MEMBER ORDER BY SID
;
-->1   강초롱   010-1111-1111

--○인원 수 확인 쿼리문 구성
SELECT COUNT(*) AS COUNT
FROM TBL_MEMBER;
-->한줄구성
SELECT COUNT(*) AS COUNT FROM TBL_MEMBER
;
-->1

--커밋
COMMIT;
















src-com.util test - MemberDAO.java

/*==============================================
   MemberDAO.java
   - 데이터 베이스 액션 처리 전용 객체 활용
================================================*/

package com.test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.util.DBConn;

public class MemberDAO
{
   private Connection conn;
   
   public MemberDAO () throws ClassNotFoundException, SQLException
   {
      conn = DBConn.getConnection();
   }
   
   //데이터 입력 메소드 정의
   public int add(MemberDTO member) throws SQLException
   {
      int result = 0;
      String sql ="INSERT INTO TBL_MEMBER(SID,NAME,TEL) VALUES(MEMBERSEQ.NEXTVAL, ?,?)";
      PreparedStatement pstmt = conn.prepareStatement(sql);
      
      pstmt.setString(1, member.getName());
      pstmt.setString(2, member.getTel());
      
      result = pstmt.executeUpdate();
      pstmt.close();
      
      return result;
      
   }
   
   // 리스트 전체 출력 메소드 정의
   public ArrayList<MemberDTO> lists() throws SQLException
      {
         ArrayList<MemberDTO> result = new ArrayList<MemberDTO>();
         
         String sql = "SELECT SID, NAME, TEL FROM TBL_MEMBER ORDER BY SID";
         
         PreparedStatement pstmt = conn.prepareStatement(sql);
         ResultSet rs = pstmt.executeQuery();
         while (rs.next())
         {
            MemberDTO member = new MemberDTO();
            
            member.setSid(rs.getString("SID"));
            member.setName(rs.getString("NAME"));
            member.setTel(rs.getString("TEL"));
            
            result.add(member);         
         }
         rs.close();
         pstmt.close();
         
         return result;
      }
   
   // 인원 수 확인을 위한 메소드 준비
   public int count() throws SQLException
   {
      int result =0;
      
      String sql = "SELECT COUNT(*) AS COUNT FROM TBL_MEMBER";
      PreparedStatement pstmt = conn.prepareStatement(sql);
      ResultSet rs = pstmt.executeQuery();
      if (rs.next())
      {
         result = rs.getInt("COUNT");
      }
      rs.close();
      pstmt.close();
      
      return result;
   }
   // 데이터 베이스 연결 종료 담당 메소드 정의
   public void close() throws SQLException 
   {
      DBConn.close();
   }
}

MemberInsert.jsp

<%@page import="com.test.MemberDAO"%>
<%@page import="com.test.MemberDTO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
   StringBuffer str = new StringBuffer();
   MemberDAO dao = null;
   
   String memberCount = "<span id='memberCount'>전체 인원수 : ";
   
   try
   {
      dao = new MemberDAO();
      
      memberCount += dao.count() + "</span>";
      
      str.append("<table class='tbl'>");
      str.append("<tr><th>번호</th><th>이름</th><th>전화번호</th></tr>");
      
      // MemberDAO 객체의 lists() 메소드 호출
      //-- 반복문을 통해 <table> 및 하위 엘리먼트 생성
      for(MemberDTO member : dao.lists())
      {
         str.append("<tr>");
         str.append("<td>" + member.getSid() + "</td>");
         str.append("<td>" + member.getName() + "</td>");
         str.append("<td>" + member.getTel() + "</td>");
         str.append("</tr>");   
      }
      
      
      str.append("</table>");
   }
   catch(Exception e)
   {
      System.out.println(e.toString());
   }
   finally
   {
      try
      {
         dao.close();
      }
      catch(Exception e)
      {
         System.out.println(e.toString());
      }
   }
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberList.jsp</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<style type="text/css">
   .errMsg {font-size: small; color: red; display: none;}
</style>
   
<script type="text/javascript">
   function formCheck()
   {
      var userName = document.getElementById("userName");
      var userMsg = document.getElementById("userMsg");
      
      nameMsg.style.display = "none";
      
      if(userName.value == "")
      {
         nameMsg.style.display = "inline";
         userName.focus();
         return false;
      }
      return true;
   }
</script>
</head>
<body>

<div>
   <h1>데이터베이스 연동 회원관리 실습</h1>
   <hr>
</div>

<div>
   <form action="MemberInsert.jsp" method="post" onsubmit="return formCheck()">
      <table class="tbl">
         <tr>
            <th>이름(*)</th>
            <td>
               <input type="text" id="userName" name="userName">
               <span class="errMsg" id="nameMsg">이름을 입력해야 합니다.</span>
            </td>
         </tr>
         <tr>
            <th>전화번호</th>
            <td>
               <input type="tel" id="userTel" name="userTel">
            </td>
         </tr>
         <tr>
            <td colspan="2">
               <button type="submit" class="btn">회원 추가</button>
            </td>
         </tr>
      </table>
   </form>
   <br><br>
   
   <div>
      <!-- 인원수 -->
      <!-- 번호 이름 전화번호 -->  
      <%=memberCount %> 
      <%=str %> 
   </div>
</div>
</body>
</html>

MemberList.jsp

<%@page import="com.test.MemberDTO"%>
<%@page import="com.test.MemberDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
   //MemberInsert.jsp
   //-- 데이터 입력 처리 페이지
   
   request.setCharacterEncoding("UTF-8");

   String userName = request.getParameter("userName");
   String userTel = request.getParameter("userTel");
   
   MemberDAO dao = null;
   
   try
   {
      dao = new MemberDAO();
      
      // MemberDTO 구성
      MemberDTO member = new MemberDTO();
      member.setName(userName);
      member.setTel(userTel);
      
      // dao 의 add() 메소드 호출 → insert 쿼리문 수행
      dao.add(member);
   }
   catch(Exception e)
   {
      System.out.println(e.toString());
   }
   finally
   {
      try
      {
         dao.close();
      }
      catch(Exception e)
      {
         System.out.println(e.toString());
      }
   }
   
   // 사용자의 손에 URL 주소가 기록되어 있는 쪽지 전달
   response.sendRedirect("MemberList.jsp");
%>

css

@charset "UTF-8";

*
{
   font-family: 맑은 고딕;   
   color : #343;

}

.tbl
{
   border-collapse: collapse;
   width: 100%;
   
}

.tbl th, .tbl td
{
   border: 1px solid gray;
   border-left: 0px;
   border-right: 0px;
   
   padding: 3px;
   line-height: 150%

}
.tbl th
{
   font-weight: bold;
   background-color: #EEE;
   
}

.btn
{
   font-weight: bold;
   color: #0000a0;
   
}
.btn.hover
{
   color: orange;   
   
   
}

.txt
{
   border-radius: 3px;
   
}

.txt:focus
{
   background-color: #eeeedd;   
   
}

.txtNumber
{
   text-align: right;
   border-radius: 3px
   
}

.txtNumber:focus
{
   background-color: #eeeedd;
   
}

textarea
{
   font-family: 맑은 고딕;
   font-weight: bold;   
}



'Web(국비) > DB연결' 카테고리의 다른 글

[JAVA]-BEAN  (0) 2019.10.29
DB연결-WebApp09  (0) 2019.10.28
[Java] score DB연결  (0) 2019.10.28
DB연결1  (0) 2019.10.27
DB연결2  (0) 2019.10.25