반응형
- 자바 순서
- BoardController
- boardMapper 가
- BoardMapper 여기로 옴
- BoardMapper.xml 여기로 옴
- BoardController
- cohttp://m.myspring.test
- MainController
package com.myspring.test;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@RequestMapping("/")
@Controller
public class MainController {
@GetMapping(value = "/")
public String home() {
return "redirect:/main.do";
}
@GetMapping(value = "/main.do")
public String main() {
return "board/main";
}
}
- cohttp://m.myspring.test.board
- Board
package com.myspring.test.board;
import lombok.Data;
@Data
public class Board {
private int boardNo;
private String boardWriter;
private String boardSubject;
private String boardContent;
private int boardReadCount;
}
- BoardController
package com.myspring.test.board;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.myspring.test.mapper.BoardMapper;
@RequestMapping("/board")
@Controller
public class BoardController {
@Autowired(required=true)
private BoardMapper boardMapper;
//--------------------------------------------
// 이제 Model 에 저장한다.
@GetMapping(value = "/getBoardList.do")
public String getBoardList( Model model) throws Exception{
System.out.println("getBoardList()");
ArrayList<Board> boardList = null;
boardList = boardMapper.getBoardList();
System.out.println(boardList.toString());
model.addAttribute("boardList", boardList);
return "board/getBoardList";
}
//--------------------------------------------
@GetMapping(value = "/addDummyPro.do")
public String addDummyPro(Model model) throws Exception{
int count = 10;
int size = 0;
int max = 0; //현재 마지막 번호
Map<String, Object> map = new HashMap();
//마이바티스 파라메타
for(int i = 0; i < count; i++) {
Object result = boardMapper.getMaxBoard(); //max 가져오기
//result가 없을 수 있어서 object로 꺼냄
System.out.println(result);
if(result != null) { //integer로 안하고 object를 한 이유. null이 아니면
max = (int)result; //null이 아니면 int로 바꿔라.
}
int number = max + 1; //마지막 번호 + 1
String writer = "작성자" + number;
String subject = "제목" + number;
String content = "내용" + number;
Board board = new Board();
board.setBoardNo(number);
board.setBoardWriter(writer);
board.setBoardSubject(subject);
board.setBoardContent(content);
board.setBoardReadCount(0);
map.put("board", board);
int check = boardMapper.addBoardPro(map);
if(check == 1) {
size += 1;
}
}
System.out.println(size);
model.addAttribute("size", size);
return "board/addDummyPro";
}
//--------------------------------------------
//전체삭제
@GetMapping(value = "/deleteAllBoardPro.do")
public String deleteAllBoardPro(Model model) throws Exception {
int check = boardMapper.deleteAllBoardPro();
model.addAttribute("check", check);
return "board/deleteAllBoardPro";
}
//--------------------------------------------
//게시글 1개 추가
//addBoard
@GetMapping(value = "/addBoard.do") //페이지 이동
public String addBoard() throws Exception {
return "board/addBoard";
}
@PostMapping(value = "/addBoardPro.do")
public String addBoardPro(Model model, Board board) throws Exception {
int max = 0;
Object result = boardMapper.getMaxBoard();
System.out.println(result);
if(result != null) {
max = (int)result;
}
//max가져오기
board.setBoardNo(max + 1);
board.setBoardReadCount(0);
Map<String, Object> map = new HashMap();
map.put("board", board);
int check = boardMapper.addBoardPro(map);
model.addAttribute("check", check);
return "board/addBoardPro";
}
//--------------------------------------------
//게시글 보기
@GetMapping(value = "/getBoardInfo.do")
public String getBoardInfo(HttpServletRequest request, Model model) throws Exception {
int boardNo = Integer.parseInt(request.getParameter("boardNo"));
//HttpServletRequest request => 번호 찾기. 사용자가 번호 누른 번호 찾기
Map<String, Object> map = new HashMap();
map.put("boardNo", boardNo);
Board board = boardMapper.getBoardInfo(map); //정보보기
//getBoardInfo 만들기
if(board != null) {
int check = boardMapper.updateReadCount(map); //조회수 증가
}
model.addAttribute("board", board);
//밑에서 정보 꺼내야 되서.
return "board/getBoardInfo";
}
//--------------------------------------------
//한개 삭제하기
@GetMapping(value = "/deleteBoardPro.do")
public String deleteBoardPro(HttpServletRequest request, Model model) throws Exception {
int boardNo = Integer.parseInt(request.getParameter("boardNo"));
Map<String, Object> map = new HashMap();
map.put("boardNo", boardNo);
int check = boardMapper.deleteBoardPro(map);
//BoardMapper => 여기서 만듬
model.addAttribute("check", check);
return "board/deleteBoardPro";
}
}
- cohttp://m.myspring.test.mapper
- BoardMapper
package com.myspring.test.mapper;
import java.util.ArrayList;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import com.myspring.test.board.Board;
@Mapper
public interface BoardMapper {
public ArrayList<Board> getBoardList();
public Integer getMaxBoard(); //게시글 마지막 번호
//반환 타입이 Integer
public int addBoardPro(Map<String, Object> map);
//데이터 추가
//Map<String, Object> map => 파라메타
//파라메타는 항상 Map<String, Object>
//원래라면 => public int addBoardPro(Board board);
//map에다가 넣어서 보낸다.
public Board getBoardInfo(Map<String, Object> map);
//반환 => result => Board
//파라메터는 항상 Map<String, Object>
public int updateReadCount(Map<String, Object> map);
//파라메터 => 항상 map Map<String, Object>
public int deleteBoardPro(Map<String, Object> map);
//삭제할꺼니까. 번호만 있으면 된다.
public int deleteAllBoardPro();
}
- BoardMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.myspring.test.mapper.BoardMapper">
<!-- 인터페이스 명을 적어준다. -->
<select id="getBoardList" resultType="com.myspring.test.board.Board">
SELECT * FROM Board;
</select>
<!--
id => 함수명
resultType => 반환타입 => ArrayList<Board> => com.myspring.test.board
-->
<!-- -->
<select id="getMaxBoard" resultType="Integer">
SELECT MAX(boardNo) FROM Board;
</select>
<!--
id => 함수명
resultType => Integer
오브젝트로 받음 . Integer은 null을 할 수가 없다.
-->
<!-- -->
<insert id="addBoardPro" parameterType="java.util.Map">
INSERT INTO board Values
(#{board.boardNo},
#{board.boardWriter},
#{board.boardSubject},
#{board.boardContent},
#{board.boardReadCount}
);
</insert>
<!--
id => 함수명
리절트가 없음
parameterType => 항상 java.util.Map
#{변수} => 기존의 ? 역할을 한다.
#{board.boardNo}
-->
<!-- -->
<select id="getBoardInfo" resultType="com.myspring.test.board.Board" parameterType="java.util.Map">
SELECT * FROM Board WHERE boardNo=#{boardNo};
</select>
<!--
id => 함수명
resultType => com.myspring.test.board.Board
parameterType="java.util.Map" => 항상 고정
-->
<!-- -->
<update id="updateReadCount" parameterType="java.util.Map">
UPDATE board SET boardReadCount = boardReadCount + 1 WHERE boardNo=#{boardNo};
</update>
<!--
id => 함수명
parameterType="java.util.Map"> => 고정
-->
<!-- -->
<delete id="deleteBoardPro" parameterType="java.util.Map">
DELETE FROM board WHERE boardNo=#{boardNo};
</delete>
<!-- -->
<delete id="deleteAllBoardPro">
DELETE FROM board;
</delete>
<!-- db명령어 -->
</mapper>반응형
'코딩 > 10-Spring' 카테고리의 다른 글
| D0602_mybatis_board => 셋팅 (3) | 2025.07.24 |
|---|---|
| B0202_db_board (0) | 2025.07.17 |
| B0102_spring_board (0) | 2025.07.17 |
| B0101_spring_basic => _03_SessionController , _04_RequestController , _05_RedirectContorller (0) | 2025.07.15 |
| 설치 (1) | 2025.07.14 |