코딩/10-Spring

D0602_mybatis_board1

tree0505 2025. 7. 24. 11:58
반응형
  • 자바 순서 
    • BoardController
      • boardMapper 가 
    • BoardMapper 여기로 옴 
    • BoardMapper.xml 여기로 옴 

  • 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