- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/pages/viewpage.action?pageId=26741530&
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
사원 상세정보 조회 기능완성
1. 상세정보 조회 SQL문 작성
- Emp.xml 파일에 사원의 상세정보를 조회하는 "selectEmp" 문장을 추가한다.
/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> </sqlMap>
2. EmpDAO 수정
- 사원의 상세정보를 조회하는 selectEmp 메소드를 추가한다.
- 사원번호(empno)를 파라미터로 받아서 사원상세정보(Emp)를 반환한다.
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); } }
3. EmpBO.java 수정
- 사원의 상세정보를 반환하는 getEmp 메소드를 생성한다.
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 empno * @return */ public Emp getEmp(int empno) { return empDAO.selectEmp(empno); } /** * 사원정보 등록 * @param emp */ public void registerEmp(Emp emp) { empDAO.insertEmp(emp); } }
4. EmpViewController 완성
- 사원의 상세정보를 반환하는 EmpViewController를 생성한다.
- @PathVariable을 이용하여 사원번호를 고유주소로 사용할 수 있게 하였다.
- 사원정보를 view.jsp 파일로 반환한다.
com.oracleclub.study.mvc.controller.EmpViewController.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.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.oracleclub.study.mvc.bo.EmpBO; /** * 사원 상세정보 조회 * * @author : gurubee * */ @Controller public class EmpViewController { @Autowired private EmpBO empBO; @RequestMapping(value = "/emp/view/{empno}") public ModelAndView view(@PathVariable int empno) { ModelAndView mv = new ModelAndView(); // 사원정보 조회 추가 mv.addObject("emp", empBO.getEmp(empno)); // View 지정 // mvc-dispatcher-servlet.xml 파일의 viewResolver를 사용 mv.setViewName("emp/view"); return mv; } }
5. list.jsp 수정
- 사원상세정보 조회 링크를 아래와 같이 수정한다.
..
<td><a href="/emp/view/${emp.empno}">${emp.ename}</a></td>
..
6. 테스트
- 사원목록에서 사원명을 클릭하여 아래와 같이 상세정보가 조회되는지 확인해 보자
- http://study.spring.com/emp/view/7566
문서정보
- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/pages/viewpage.action?pageId=26741530&
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.