JSP

09일차_직원관리

알 수 없는 사용자 2015. 6. 22. 23: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");

%>



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

문제) 부서 관리, 직위 관리 프로그램 작성