MemberDTO.java ▼▼▼
/* ============================================
MemberDTO.java
- 객체 전용(데이터 보관 및 전송) JAVA Bean
============================================ */
package com.test;
public class MemberDTO
{
//주요 속성 구성(프로퍼티 구성)
private String sid, name, tel; // 번호, 이름, 전화번호
public String getSid()
{
return sid;
}
public void setSid(String sid)
{
this.sid = sid;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getTel()
{
return tel;
}
public void setTel(String tel)
{
this.tel = tel;
}
// getter / setter 구성
}
MemberDAO.java ▼▼▼
/* ===============================
MemberDAO.java
- 데이터베이스 액션 처리 전용 클래스
(TBL_MEMBER 테이블 전용 DAO)
=============================== */
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 Connection connection()
{
conn = DBConn.getConnection();
return conn;
}
// 데이터 입력 담당 메소드
public int add(MemberDTO dto) 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, dto.getName());
pstmt.setString(2, dto.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 여도 됨... count 가 단일행 반환하기땜에
while (rs.next())
{
result = rs.getInt("COUNT");
}
rs.close();
pstmt.close();
return result;
}
// 멤버 수정
public int modify(MemberDTO dto) throws SQLException
{
int result = 0;
String sql = "UPDATE TBL_MEMBER SET NAME=?, TEL=? WHERE SID=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, dto.getName());
pstmt.setString(2, dto.getTel());
pstmt.setString(3, dto.getSid());
result = pstmt.executeUpdate();
return result;
}
public void close()
{
DBConn.close();
}
// 멤버 (번호로)검색
public MemberDTO searchMember(String sid) throws SQLException
{
MemberDTO dto = new MemberDTO();
String sql = "SELECT SID, NAME, TEL FROM TBL_MEMBER WHERE SID = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, sid);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
dto.setSid(rs.getString("SID"));
dto.setName(rs.getString("NAME"));
dto.setTel(rs.getString("TEL"));
}
rs.close();
pstmt.close();
return dto;
}
// 데이터 삭제
public int remove(String sid) throws SQLException
{
MemberDTO dto = new MemberDTO();
int result = 0;
String sql = "DELETE FROM TBL_MEMBER WHERE SID = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, sid);
result = pstmt.executeUpdate();
return result;
}
// 메소드 추가
// 자식 테이블의 참조 데이터 레코드 수 확인
public int refCount(String sid) throws SQLException
{
int result = 0;
String sql = "SELECT COUNT(*) AS COUNT FROM TBL_MEMBERSCORE WHERE SID=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, sid);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
result = rs.getInt("COUNT");
}
rs.close();
pstmt.close();
return result;
}
}
MemberInsert.jsp ▼▼▼
<%@page import="com.test.MemberDTO"%>
<%@page import="com.test.MemberDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
//MemberInsert.jsp
// 테이블에 회원데이터 추가 액션 처리..
// 이후 다시 리스트페이지 MemberSelect.jsp 요청
request.setCharacterEncoding("UTF-8");
String uName = request.getParameter("uName");
String uTel = request.getParameter("uTel");
MemberDAO dao = new MemberDAO();
try
{
// 데이터베이스 연결
dao.connection();
// MemberDTO 객체 생성 및 속성 구성(→ add()메소드 호출 위해 필요 )
MemberDTO member = new MemberDTO();
member.setName(uName);
member.setTel(uTel);
// insert 쿼리문을 수행하는 dao의 add()메소드 호출
dao.add(member);
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
// check~!!
// 클라이언트가 MemberSelect.jsp 페이지를 다시요청할 수 있도록 안내
response.sendRedirect("MemberSelect.jsp");
%>
MemberUpdate.jsp ▼▼▼
<%@page import="com.test.MemberDTO"%>
<%@page import="com.test.MemberDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
//MemberUpdate
request.setCharacterEncoding("UTF-8");
String sid = request.getParameter("sid");
String uName = request.getParameter("uName");
String uTel = request.getParameter("uTel");
MemberDAO dao = new MemberDAO();
try
{
dao.connection();
MemberDTO dto = new MemberDTO();
dto.setSid(sid);
dto.setName(uName);
dto.setTel(uTel);
dao.modify(dto);
// 이후 반환 결과에 따른 분기 처리 가능~!!
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
dao.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
// 클라이언트에 MemberSelect.jsp를 다시 요청할 수 있도록 안내~!!
response.sendRedirect("MemberSelect.jsp");
%>
MemberDelete.jsp ▼▼▼
<%@page import="com.test.MemberDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
String sid = request.getParameter("sid");
MemberDAO dao = new MemberDAO();
String strAddr = "";
try
{
dao.connection();
//dao.remove(sid);
// 참조 레코드 수 확인
int checkCount = dao.refCount(sid);
// TBL_MEMBER 테이블의 제거하고자 하는 데이터의
// SID 를 참조하는 TBL_MEMBERSCORE 테이블 내의 갯수 확인
if(checkCount == 0) // 제거 가능
{
dao.remove(sid);
strAddr = "MemberSelect.jsp";
}
else // 제거 불가
{
//dao.remove(sid);
//-- TBL_MEMBERSCORE 테이블의 데이터가
// TBL_MEMBER 테이블의 SID 를 참조하고 있는 경우로
// 삭제가 불가능한 상황
//-- 제거하지 못하는 사유를 안내하는 페이지로 이동
// + 리스트로 돌아가기 버튼
strAddr = "Notice.jsp";
}
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
try
{
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
response.sendRedirect(strAddr);
// 나머지 보여지는 코드들 모두 제거
%>
728x90
'WEB Archive' 카테고리의 다른 글
[JSP] 회원 관리 실습 - 추가, 수정 폼 (0) | 2024.08.22 |
---|---|
[JSP] 회원 성적 관리 실습 - 추가, 수정 폼 (0) | 2024.08.22 |
[JSP] Member Score 구현 (0) | 2024.08.22 |
[JSP] Score 구현 (0) | 2024.08.22 |
[JSP] Member 구현 (0) | 2024.08.22 |
댓글