spring-mvc-board.zip

board table




프로젝트 구조




※ Interface파일과 jsp view파일은 첨부파일 참조


BoardMapper.xml

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tistory.injava.BoardMapper">
    <update id="updateBoard"
            parameterType="com.tistory.injava.service.Board">
        UPDATE board SET 
            board_title=#{boardTitle}, 
            board_content=#{boardContent} 
        WHERE board_no=#{boardNo} AND board_pw=#{boardPw}
    </update>
    
    <select id="selectBoardByKey"
            parameterType="int"
            resultType="com.tistory.injava.service.Board">
        SELECT 
            board_no as boardNo,
            board_title as boardTitle, 
            board_content as boardContent, 
            board_user as boardUser, 
            board_date as boardDate 
        FROM board 
        WHERE board_no=#{boardNo}
    </select>
    <delete id="deleteBoard"
            parameterType="com.tistory.injava.service.Board">
        DELETE FROM board 
        WHERE board_no=#{boardNo} AND board_pw=#{boardPw}    
    </delete>
    
    <select id="selectTotalBoardCount"
            resultType="int">
        SELECT 
            COUNT(*) 
        FROM board
    </select>
    
    <select id="selectBoardListPerPage"
            parameterType="Map"
            resultType="com.tistory.injava.service.Board">
        SELECT 
            board_no as boardNo, 
            board_title as boardTitle, 
            board_user as boardUser, 
            board_date as boardDate
        FROM board 
        ORDER BY board_date DESC 
        LIMIT #{beginRow}, #{pagePerRow}
    </select>
    
    <insert id="boardAdd"
            parameterType="com.tistory.injava.service.Board">
        INSERT INTO board(
            board_pw, 
            board_title, 
            board_content, 
            board_user, 
            board_date) 
        VALUES(
            #{boardPw},
            #{boardTitle},
            #{boardContent},
            #{boardUser},
            now()
        )
    </insert>
</mapper>
cs



BoardDaoImpl.java

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
package com.tistory.injava.service;
 
import java.util.List;
import java.util.Map;
 
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
 
@Repository
public class BoardDaoImpl implements BoardDao{
    @Autowired
    private SqlSessionTemplate sqlSession; 
    
    private final String BOARD_NS = "com.tistory.injava.BoardMapper.";
    
    @Override
    public int insertBoard(Board board) {
        // TODO Auto-generated method stub
        return sqlSession.insert(BOARD_NS+"boardAdd", board);
    }
 
    @Override
    public int selectTotalBoardCount() {
        // TODO Auto-generated method stub
        return sqlSession.selectOne(
                BOARD_NS+"selectTotalBoardCount");
    }
 
    @Override
    public List<Board> selectBoardListPerPage(Map<String, Integer> map) {
        // TODO Auto-generated method stub
        return sqlSession.selectList(BOARD_NS+"selectBoardListPerPage", map);
    }
 
    @Override
    public int deleteBoard(Board board) {
        // TODO Auto-generated method stub
        return sqlSession.delete(BOARD_NS+"deleteBoard", board);
    }
 
    @Override
    public Board selectBoardByKey(int boardNo) {
        // TODO Auto-generated method stub
        return sqlSession.selectOne(BOARD_NS+"selectBoardByKey", boardNo);
    }
 
    @Override
    public int updateBoard(Board board) {
        // TODO Auto-generated method stub
        return sqlSession.update(BOARD_NS+"updateBoard", board);
    }
}
cs



BoardServiceImpl.java

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
54
55
56
57
58
59
60
61
62
package com.tistory.injava.service;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
@Service
public class BoardServiceImpl implements BoardService{
    @Autowired
    private BoardDao boardDao;
    
    @Override
    public int addBoard(Board board) {
        // TODO Auto-generated method stub
        return boardDao.insertBoard(board);
    }
 
    @Override
    public Map<String, Object> getBoardListPerCurrentPage(int currentPage) {
        // pagePerRow, beginRow
        int pagePerRow = 10;
        int beginRow = (currentPage-1)*pagePerRow;
        // totalCount
        int totalRowCount = boardDao.selectTotalBoardCount();
        // lastPage
        int lastPage = totalRowCount/pagePerRow;
        if(totalRowCount%pagePerRow != 0) {
            lastPage++;
        }
        // boardList
        Map<String, Integer> map = new HashMap<String, Integer>();
        map.put("beginRow", beginRow);
        map.put("pagePerRow", pagePerRow);
        List<Board> list = boardDao.selectBoardListPerPage(map);
        Map<String, Object> returnMap = new HashMap<String, Object>();
        returnMap.put("totalRowCount", totalRowCount);
        returnMap.put("lastPage", lastPage);
        returnMap.put("list", list);
        return returnMap;
    }
 
    @Override
    public int removeBoard(Board board) {
        // TODO Auto-generated method stub
        return boardDao.deleteBoard(board);
    }
 
    @Override
    public Board getBoardByKey(int boardNo) {
        // TODO Auto-generated method stub
        return boardDao.selectBoardByKey(boardNo);
    }
 
    @Override
    public int modifyBoard(Board board) {
        // TODO Auto-generated method stub
        return boardDao.updateBoard(board);
    }
}
cs



BoardController.java

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.tistory.injava.web;
 
import java.util.Map;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
 
import com.tistory.injava.service.Board;
import com.tistory.injava.service.BoardService;
 
@Controller
public class BoardController {
    @Autowired
    private BoardService boardService;
    
    @RequestMapping(value="/board/boardModify", method=RequestMethod.GET)
    public String boardModify(Model model, @RequestParam(value="boardNo"int boardNo) {
        model.addAttribute("board", boardService.getBoardByKey(boardNo));
        return "/board/boardModify";
    }
    
    @RequestMapping(value="/board/boardModify", method=RequestMethod.POST)
    public String boardModify(Model model, Board board) {
        if(boardService.modifyBoard(board) != 1) {
            model.addAttribute("board", board);
            return "/board/boardModify";
        }
        return "redirect:/board/boardList";
    }
    
    @RequestMapping(value="/board/boardView")
    public String boardView(Model model, @RequestParam(value="boardNo"int boardNo) {
        model.addAttribute("board", boardService.getBoardByKey(boardNo));
        return "/board/boardView";
    }
    
    @RequestMapping(value="/board/boardRemove", method=RequestMethod.GET)
    public String boardRemove() {
                                    
        
        return "/board/boardRemove";
    }
    
    @RequestMapping(value="/board/boardRemove", method=RequestMethod.POST)
    public String boardRemove(Board board) {
        if(boardService.removeBoard(board) != 1) {
            
            return "/board/boardRemove";
        }
        return "redirect:/board/boardList";
    }
    
    @RequestMapping(value="/board/boardList")
    public String boardList(Model model, @RequestParam(value="currentPage", defaultValue="1"int currentPage) {
        Map<String, Object> returnMap 
            = boardService.getBoardListPerCurrentPage(currentPage);
        model.addAttribute("currentPage", currentPage);
        model.addAttribute("totalRowCount", returnMap.get("totalRowCount"));
        model.addAttribute("lastPage", returnMap.get("lastPage"));
        model.addAttribute("list", returnMap.get("list"));
        return "/board/boardList";
    }
    
    @RequestMapping(value="/board/boardAdd", method=RequestMethod.POST)
    public String boardAdd(Board board) {
        boardService.addBoard(board);
        return "redirect:/board/boardList"// redirect
    }
    
    @RequestMapping(value="/board/boardAdd", method=RequestMethod.GET)
    public String boardAdd() {
        return "/board/boardAdd"// forward
    }    
}
cs


+ Recent posts