09일차_직원관리
---------------------------------
직원 관리 JSP(JDBC) 프로그램
11. 소스코드
//Region.java
package com.test;
//자료형 클래스
public class Region {
//멤버변수
//regionId, regionName, delCheck
private String regionId, regionName;
private int delCheck; //0(삭제 가능) 또는 1 이상(삭제 불가능)의 숫자
public String getRegionId() {
return regionId;
}
public void setRegionId(String regionId) {
this.regionId = regionId;
}
public String getRegionName() {
return regionName;
}
public void setRegionName(String regionName) {
this.regionName = regionName;
}
public int getDelCheck() {
return delCheck;
}
public void setDelCheck(int delCheck) {
this.delCheck = delCheck;
}
}
//RegionDAO.java
package com.test;
import java.sql.*;
import java.util.*;
//데이터베이스 액션 클래스
public class RegionDAO {
//지역 명단 출력 메소드
public ArrayList<Region> regionList() {
ArrayList<Region> result = new ArrayList<Region>();
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
//SELECT regionId, regionName, delCheck
// FROM regionView
// ORDER BY regionId;
String sql = "SELECT regionId, regionName, delCheck FROM regionView ORDER BY regionId";
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next()) {
Region r = new Region();
r.setRegionId(rs.getString("regionId"));
r.setRegionName(rs.getString("regionName"));
r.setDelCheck(rs.getInt("delCheck"));
result.add(r);
}
rs.close();
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if (pstmt != null) {
pstmt.close();
}
}catch(Exception e){
}
DBConn.close();
}
return result;
}
//지역 명단 입력 메소드
public int add(Region region) {
int result = 0;
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
//INSERT INTO region (regionId, regionName)
// VALUES (regionSeq.nextval, ?)
String sql = "INSERT INTO region (regionId, regionName) VALUES (regionSeq.nextval, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, region.getRegionName());
result = pstmt.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if (pstmt != null) {
pstmt.close();
}
}catch(Exception e){
}
DBConn.close();
}
return result;
}
//지역 명단 삭제 메소드 -> 외부에서 지역번호를 전달 받아야 한다.
public int remove(String regionId) {
int result = 0;
Connection conn = null;
PreparedStatement pstat = null;
try {
conn = DBConn.getConnection();
String sql = "DELETE FROM region WHERE regionId = ?";
pstat = conn.prepareStatement(sql);
pstat.setString(1, regionId);
result = pstat.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(pstat!=null){
pstat.close();
}
}catch(Exception e){
}
DBConn.close();
}
return result;
}
}
//RegionInsertTest.java
package com.test;
public class RegionInsertTest {
public static void main(String[] args) {
RegionDAO dao = new RegionDAO();
Region region = new Region();
region.setRegionName("수원");
int result = dao.add(region);
System.out.printf("%d개의 행이 삽입되었습니다.", result);
}
}
//RegionList.jsp
<%@page import="com.test.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
StringBuilder sb = new StringBuilder();
RegionDAO dao = new RegionDAO();
for(Region r : dao.regionList()) {
sb.append("<tr>");
sb.append(String.format("<td>%s</td>", r.getRegionId()));
sb.append(String.format("<td>%s</td>", r.getRegionName()));
sb.append(String.format("<td><input type=\"button\" value=\"삭제\" class=\"btnDelete\" %s></td>"
, r.getDelCheck()==0 ? "" : "disabled=\"disabled\""));
sb.append("</tr>");
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>직원 관리(JSP버전)</title>
<link rel="stylesheet" type="text/css" href="TableStyle.css">
<link rel="stylesheet" type="text/css" href="DivStyle.css">
<script type="text/javascript">
window.onload=function(){
document.getElementById("myForm").onsubmit=function(){
//데이터 검증 및 서브밋 액션 과정 추가
var errorMsg = document.getElementById("errorMsg");
var regionName = document.getElementById("regionName");
if(regionName.value==""){
errorMsg.innerHTML = "지역명을 입력하세요.";
return false;
}
return true;
};
var btnDeletes = document.getElementsByClassName("btnDelete");
//alert(btnDeletes.length);
for(var i=0; i<btnDeletes.length; i++){
var btnDelete = btnDeletes[i];
btnDelete.onclick=function(){
//alert("버튼클릭!");
var node = this; //<input> 객체
var pNode = node.parentNode; //<td> 객체
var ppNode = pNode.parentNode; //<tr> 객체
//alert(ppNode.nodeName); //<tr>이 나와야 성공!
var cNode = ppNode.firstChild; //<td> 객체
var text = cNode.firstChild.nodeValue; //지역번호
//삭제 여부 확인 과정 추가
if(confirm(text+"번 지역을 삭제할까요?")) {
//취소, 확인 버튼 나오는데 확인 눌러야 진행된다.
location.href="RegionDelete.jsp?regionId="+text;
}
};
}
};
</script>
</head>
<body>
<div>
<!-- 메뉴 영역 -->
<div class="title">
<h1>직원관리 (JSP버전)</h1>
<c:import url="EmployeeMenu.jsp"></c:import>
</div>
<!-- 콘텐츠 영역 -->
<div class="main">
<h2>지역 관리</h2>
<form action="RegionInsert.jsp" method="post" id="myForm">
<!-- name="", id="" 식별자는 테이블 컬럼명 사용 -->
지역명* <input type="text" name="regionName" id="regionName">
<input type="submit" value="지역추가">
<span id="errorMsg" style="color:red;"></span>
</form>
<table id="t01" style="font-size:10pt;">
<!-- <tr>은 제목 -->
<tr>
<th>지역 번호</th>
<th>지역명</th>
<th>삭제</th>
</tr>
<%= sb.toString() %>
</table>
</div>
</div>
</body>
</html>
//RegionInsert.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.test.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
//데이터 수신(한글 인코딩 추가)
request.setCharacterEncoding("UTF-8");
String regionName = request.getParameter("regionName");
//데이터베이스 액션 -> add() 메소드 호출로 대체
RegionDAO dao = new RegionDAO();
Region r = new Region();
r.setRegionName(regionName);
dao.add(r);
response.sendRedirect("RegionList.jsp");
%>
//RegionDelete.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.test.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
//데이터 수신(한글 인코딩 추가)
request.setCharacterEncoding("UTF-8");
String regionId = request.getParameter("regionId");
//데이터베이스 액션 -> add() 메소드 호출로 대체
RegionDAO dao = new RegionDAO();
dao.remove(regionId);
response.sendRedirect("RegionList.jsp");
%>
-------------------------------------------
문제) 부서 관리, 직위 관리 프로그램 작성