by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

사원정보 삭제기능 완성




사원정보 삭제기능 완성

  • 이번 예제는 사원번호를 파라미터로 받아서 사원정보를 삭제하는 예이다.

1. 사원정보 삭제 SQL문 작성

  • Emp.xml 파일에 사원 정보를 삭제하는 "deleteEmp" 문장을 추가한다.
/src/main/resources/sqlmap/Emp.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="emp">

    <typeAlias alias="emp" type="com.oracleclub.study.mvc.model.Emp"/>

    <select id="selectEmpList" resultClass="emp"  >
        SELECT empno, ename, job, sal, NVL(mgr,0) mgr
          FROM emp 
    </select>   

    <select id="selectEmp" resultClass="emp" parameterClass="int"  >
        SELECT empno, ename, job, sal, NVL(mgr,0) mgr, deptno
          FROM emp 
         WHERE empno = #empno#
    </select> 
    
    <insert id="insertEmp"  parameterClass="emp"  >
        INSERT INTO emp (empno, ename, job, sal, mgr,  hiredate, deptno)
        VALUES (#empno#, #ename#, #job#, #sal#, 0, #hiredate#, #deptno#)
    </insert> 

    <delete id="deleteEmp"  parameterClass="int"  >
        DELETE FROM emp WHERE empno = #ename#
    </delete>    
</sqlMap>

2. EmpDAO 수정

  • 사원정보를 삭제하는 deleteEmp 메소드를 추가한다.
  • 사원번호(empno)를 파라미터로 받는다.
com.spring.mvc.dao.EmpDAO.java
package com.oracleclub.study.mvc.dao;

import java.util.List;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;

import com.oracleclub.study.mvc.model.Emp;

/**
 * 사원정보를 관리하는 DAO
 * 
 * @author : oramaster
 * 
 */
@Repository
public class EmpDAO extends SqlMapClientDaoSupport {

    private static final String NAMESPACE = "emp.";

    /**
     * 사원정보 등록
     * @param emp
     */
    public void insertEmp(Emp emp) {
        getSqlMapClientTemplate().insert(NAMESPACE + "insertEmp", emp);
    }

    /**
     * 사원목록 정보 조회
     * @return
     */
    @SuppressWarnings("unchecked")
    public List<Emp> selectEmpList() {
        return (List<Emp>)getSqlMapClientTemplate().queryForList(NAMESPACE + "selectEmpList");
    }

    /**
     * 사원 정보 조회
     * @param empno
     * @return
     */
    public Emp selectEmp(int empno) {
        return (Emp)getSqlMapClientTemplate().queryForObject(NAMESPACE + "selectEmp", empno);
    }

    /**
     * 사원정보 삭제
     * 
     * @param empno
     */
    public void deleteEmp(int empno) {
        getSqlMapClientTemplate().delete(NAMESPACE + "deleteEmp", empno);
    }    
}

3. EmpBO.java 수정

  • EmpBO 클래스에 사원정보를 삭제하는 removeEmp 메소드를 추가한다.
com.oracleclub.study.mvc.bo.EmpBO.java
package com.oracleclub.study.mvc.bo;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.oracleclub.study.mvc.dao.EmpDAO;
import com.oracleclub.study.mvc.model.Emp;

/**
 * 사원관리 비즈니스로직 처리
 * 
 * @author : oramaster
 * 
 */
@Service
public class EmpBO {

	@Autowired
	private EmpDAO empDAO;

	/**
	 * 사원목록 조회
	 * 
	 * @return
	 */
	public List<Emp> getEmpList() {
		return empDAO.selectEmpList();
	}

	/**
	 * 사원정보 등록
	 * @param emp
	 */
	public void registerEmp(Emp emp) {
		empDAO.insertEmp(emp);
	}

    /**
     * 사원정보 조회
     * 
     * @param empno
     * @return
     */
    public Emp getEmp(int empno) {
        return empDAO.selectEmp(empno);
    }
    
   /**
     * 사원정보 삭제
     * 
     * @param empno
     */
    public void removeEmp(int empno) {
        empDAO.deleteEmp(empno);
    }	
}

4. EmpRemoveController 완성

  • @RequestParam을 이용하여 사원정보를 파라미터로 받는다.
  • @Autowired로 EmpBO 객체를 생성하고 사원정보를 삭제하는 removeEmp 메소드를 호출한다.
  • 사원정보 삭제 후 "/emp/list" 페이지로 redirect 한다.
com.oracleclub.study.mvc.controller.EmpRemoveController.java
package com.oracleclub.study.mvc.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.oracleclub.study.mvc.bo.EmpBO;

/**
 * 사원정보 삭제
 * 
 * @author : gurubee
 * 
 */
@Controller
public class EmpRemoveController {

    @Autowired
    private EmpBO empBO;

    @RequestMapping(value = "/emp/remove")
    public String remove(@RequestParam int empno) {

        empBO.removeEmp(empno);

        return "redirect:/emp/list";
    }
}

5. 테스트

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.