웹 프로그래밍/Spring
[Spring] 7. 스프링 기본(6) - 게시판 (CRUD)2
코딩하는 문과생
2020. 2. 7. 09:44
[삭제하기 - 스크립트 이용]
0. 준비
<script type="text/javascript">
$(function() {
$("#list").click(function() {
location.href="listPage.do";
});
$("#remove").click(function() {
location.href="remove.do?seq="+${board.seq};
});
})
</script>
1. Mapper수정
<delete id="delete" parameterType="board">
DELETE FROM INTERN_BOARD_TBL
WHERE SEQ = #{seq}
</delete>
2. Dao수정
@Override
public int removeRow(Object obj) {
int resultDao = session.delete(PREFIX+".delete", obj);
return resultDao;
}
3. Service수정
@Override
public int remove(Object obj) {
int resultService = dao.removeRow(obj);
return resultService;
}
4. Ctrl수정
@RequestMapping("/remove.do")
public String remove(BoardVO vo) {
System.out.println("-- remove --");
int flag = service.remove(vo);
System.out.println("remove flat : " + flag);
return "redirect:/listPage.do";
}
[수정하기 - 스크립트 이용]
0. 준비
<script type="text/javascript">
$(function() {
$("#list").click(function() {
location.href="listPage.do";
});
$("#remove").click(function() {
location.href="remove.do?seq="+${board.seq};
});
$("#modify").click(function() {
//console.log("modify.do?seq=" + $("#seq").val() + "&title=" + $("#title").val() + "&content=" + $("#content").val());
location.href="modify.do?seq=" + $("#seq").val() + "&title=" + $("#title").val() + "&content=" + $("#content").val();
});
})
</script>
1. Mapper
<update id="update" parameterType="board">
UPDATE INTERN_BOARD_TBL
SET TITLE = #{title}, CONTENT = #{content}
WHERE SEQ = #{seq}
</update>
2. Dao
@Override
public int modifyRow(Object obj) {
int modifyDao = session.update(PREFIX+".update",obj);
return modifyDao;
}
3. Service
@Override
public int modify(Object obj) {
int modifyService = dao.modifyRow(obj);
return modifyService;
}
4. Controller
@RequestMapping("/modify.do")
public String modify(BoardVO vo) {
System.out.println("-- modify --");
int flag = service.modify(vo);
System.out.println("modify flag : " + flag);
return "redirect:/listPage.do";
}
[조회수 - DAO에 메소드 추가]
0. 준비
x
1. Mapper
<update id="upCnt" parameterType="board">
UPDATE INTERN_BOARD_TBL
SET VIEWCNT = VIEWCNT + 1
WHERE SEQ = #{seq}
</update>
2. Dao
//upCnt 추가
public int upCnt(Object obj) {
return session.update(PREFIX+".upCnt", obj);
}
//메소드 호출
@Override
public Object readRow(Object obj) {
int upCntFlag = upCnt(obj);
System.out.println("upCntFlag : " + upCntFlag);
System.out.println("board dao readRow : " + obj);
return session.selectOne(PREFIX+".read", obj);
}
3. Service
x
4. Controller
x
[검색하기 - AJAX 통신]
0. 준비
$("#searchBtn").click(function() {
$.ajax({
url : "search.do" ,
type : "post" ,
dataType : "json" ,
data : { type : $("#searchType").val() , keyword : $("#searchKeyword").val() } ,
success : function(data) {
$("#tbody").empty();
var txt = "";
$.each(data , function(idx, obj) {
txt +="<tr><td>"+obj.seq+"</td>" ;
txt +="<td><a href='readPage?seq="+obj.seq+"'>"+obj.title+"</a></td>";
txt +="<td>"+obj.writer+"</td>";
txt +="<td>"+obj.regdate+"</td>";
txt +="<td><span class='badge bg-red'>"+obj.viewcnt+"</span></td></tr>" ;
});
$("#tbody").append(txt);
}
});
});
1. Mapper - 쿼리문에 태그 작성
<select id="search" parameterType="map" resultType="board">
SELECT SEQ, TITLE, CONTENT, WRITER, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE, VIEWCNT
FROM INTERN_BOARD_TBL
<where>
<if test = "type == 'title'">
TITLE LIKE '%'||#{keyword}||'%'
</if>
<if test = "type == 'writer'">
WRITER LIKE '%'||#{keyword}||'%'
</if>
</where>
ORDER BY 1 DESC
</select>
2. Dao
@Override
public List<Object> searchRow(HashMap<String, String> map) {
List<Object> searchDao = session.selectList(PREFIX+".search", map) ;
return searchDao;
}
3. Service
@Override
public List<Object> search(HashMap<String, String> map) {
List<Object> searchService = dao.searchRow(map);
return searchService;
}
4. Controller - Map으로 넘기기, @ResponseBody는 반환값을 JSON으로 만들어준다.
@RequestMapping("/search.do")
//리턴타입을 json화 해준다. 따라서 코드상에서 따로 작업할 필요 없다.
@ResponseBody
public List<Object> search(String type, String keyword, HashMap<String, String> map) {
System.out.println("-- search --");
map.put("type", type);
map.put("keyword", keyword);
List<Object> result = service.search(map);
return result;
}