티스토리 뷰

Spring

Spring - mybatis 데이터 update

송사장~~ 2016. 10. 18. 10:48

데이터 insert와는 다르게,

 

update같은 경우에는 기본 form에 사용자 정보를 뿌려줘야 한다.

 

현재 자신의 정보를 보고 수정해야 하므로..

 

그 외에는 insert와 다를 바가 없다.

 

간단하게 form부터 보면,

 

 

이런 형식이다. 이렇게 간단한 폼이라면 보통 insert, update form을 공통으로 사용하기도 한다.

 

먼저 소스를 보면,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<form role="form" method="post" action="" id="form_value">
    <c:forEach items="${empDetail}" var="emp">
        <div class="form-group">
            <label>사번:</label> <input type="number" class="form-control" name="empNo" placeholder="사번(숫자만 입력하세요)" value="${emp.empNo}" readonly="readonly">
        </div>
        <div class="form-group">
            <label>이름:</label> <input type="text" class="form-control" name="eName" placeholder="이름을 입력하세요" value="${emp.eName}">
        </div>
        <div class="form-group">
            <label>업무:</label> <input type="text" class="form-control" name="job" placeholder="업무를 입력하세요" value="${emp.job}">
        </div>
        <div class="form-group">
            <label>입사일:</label> <input type="date" class="form-control" name="hireDate" value="${emp.hireDate}">
        </div>
        <div class="form-group">
            <label>급여:</label> <input type="number" class="form-control" name="sal" placeholder="급여(숫자만 입력하세요)" value="${emp.sal}">
        </div>
        <div class="form-group">
            <label>커미션:</label> <input type="number" class="form-control" name="comm" placeholder="커미션(숫자만 입력하세요)" value="${emp.comm}">
        </div>
        <div class="form-group">
            <label>부서번호:</label>
            <c:if test="${emp.deptNo == 10}">
                <c:set var="selected10" value="selected" />
            </c:if>
            <c:if test="${emp.deptNo == 20}">
                <c:set var="selected20" value="selected" />
            </c:if>
            <c:if test="${emp.deptNo == 30}">
                <c:set var="selected30" value="selected" />
            </c:if>
            <c:if test="${emp.deptNo == 40}">
                <c:set var="selected40" value="selected" />
            </c:if>
            <select name="deptNo" id="deptNo">
                <option value="10" ${selected10}>10</option>
                <option value="20" ${selected20}>20</option>
                <option value="30" ${selected30}>30</option>
                <option value="40" ${selected40}>40</option>
            </select>
 
        </div>
        <div class="form-group">
            <label>부서명:</label> <input type="text" class="form-control" name="deptName" readonly="readonly" value="${emp.dName }" id="deptName">
        </div>
        <div class="form-group">
            <label>근무지:</label> <input type="text" class="form-control" name="loc" readonly="readonly" value="${emp.loc}" id="loc">
        </div>
        <div align="right" id="btn_mode">
            <input type="submit" class="btn btn-default btn-sm" value="">
        </div>
    </c:forEach>
</form>

 

action값은 동적으로 처리하기 위해 아무 값이 없다.

 

상황에 따라 제이쿼리 등으로 처리하면 된다.

 

예를들어,

param값으로 form 구분 해주면서..이렇게 처리하면 되겠다.

 

1
$('#form_value').attr("action", "/empUpdate");

 

그럼, 컨트롤러 부분

 

1
2
3
4
5
6
7
8
//직원 정보 수정 화면
@RequestMapping(value = "/updateForm", method = RequestMethod.GET)
public String updateForm(String empNo, Model model){
    ArrayList<Emp> empDetail = empService.empDetail(empNo);
    model.addAttribute("empDetail", empDetail);
     
    return "/WEB-INF/updateForm.jsp";
}

 

이후, insert와 동일하게..

 

1
2
3
4
5
@Override
public void empUpdate(Emp emp){
    EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
    empMapper.empUpdate(emp);
}

1
public void empUpdate(Emp emp);

1
2
3
4
5
<update id="empUpdate" parameterType="java.lang.String">
    UPDATE EMP
        SET ENAME = #{eName}, JOB = #{job}, HIREDATE = #{hireDate}, SAL = #{sal}, COMM = #{comm}, DEPTNO = #{deptNo}
        WHERE EMPNO = #{empNo}
</update>

 

이렇게 해주면 끝..

'Spring' 카테고리의 다른 글

jstl: fmt - 날짜 연산  (0) 2017.06.30
스프링 - jsp 한글 인코딩  (0) 2016.11.14
Spring - mybatis 데이터 insert  (0) 2016.10.18
Spring - mybatis 데이터 delete  (0) 2016.10.17
Spring-mybatis 데이터 리스트 출력(c:foreach)  (0) 2016.10.17
댓글