Spring
Spring 게시판 글 작성, 삭제 로직
테라시아
2024. 12. 26. 16:55
☆ Code
★ 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.koreait.board.mapper.BoardMapper">
<insert id="insert">
INSERT INTO TBL_BOARD(BNO, TITLE, CONTENT, WRITER)
VALUES(NEXTVAL(SEQ_BOARD), #{title}, #{content}, #{writer})
</insert>
<insert id="insertSelectKey">
<selectKey keyProperty="bno" order="BEFORE" resultType="long">
SELECT NEXTVAL(SEQ_BOARD) FROM DUAL
</selectKey>
INSERT INTO TBL_BOARD(BNO, TITLE, CONTENT, WRITER)
VALUES(#{bno}, #{title}, #{content}, #{writer})
</insert>
<select id="getList" resultType="boardVO">
<![CDATA[
SELECT BNO, TITLE, CONTENT, WRITER, REGDATE, UPDATEDATE
FROM TBL_BOARD
WHERE BNO > 0
]]>
</select>
<select id="get" resultType="boardVO">
SELECT BNO, TITLE, CONTENT, WRITER, REGDATE, UPDATEDATE
FROM TBL_BOARD
WHERE BNO = #{bno}
</select>
<update id="update">
UPDATE TBL_BOARD
SET TITLE = #{title}, CONTENT = #{content}, WRITER = #{writer}
WHERE BNO = #{bno}
</update>
<delete id="delete">
DELETE FROM TBL_BOARD
WHERE BNO = #{bno}
</delete>
</mapper>
★ BoardDao.java
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.koreait.board.bean.BoardVO;
import com.koreait.board.mapper.BoardMapper;
@Repository
public class BoardDAO {
@Autowired
private BoardMapper mapper;
public List<BoardVO> getList() {
return mapper.getList();
}
public int register(BoardVO board) {
return mapper.insertSelectKey(board);
}
public BoardVO read(Long bno) {
return mapper.get(bno);
}
public int modify(BoardVO board) {
return mapper.update(board);
}
public int remove(Long bno) {
return mapper.delete(bno);
}
}
★ BoardController.java
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 org.springframework.web.servlet.mvc.support.RedirectAttributes;
import org.springframework.web.servlet.view.RedirectView;
import com.koreait.board.bean.BoardVO;
import com.koreait.board.dao.BoardDAO;
import lombok.extern.slf4j.Slf4j;
@Controller
@RequestMapping("/board/*")
@Slf4j
public class BoardController {
@Autowired
private BoardDAO dao;
@GetMapping("list")
public void list(Model model) {
log.info("-------------------------------------------------->");
log.info("Get List Called");
model.addAttribute("list", dao.getList());
}
@GetMapping("register")
public void register() {
}
@PostMapping("register")
public RedirectView write(BoardVO board, RedirectAttributes rttr) {
log.info("글 쓴댄다 : " + board);
log.info(dao.register(board) + "건 등록 완료");
rttr.addFlashAttribute("msg", board.getBno() + "번 글이 등록되었습니다.");
return new RedirectView("list");
}
@RequestMapping("read")
public void read(Long bno, Model model) {
log.info("------------------------------>");
log.info("read : bno =" + bno);
model.addAttribute("vo", dao.read(bno));
}
@RequestMapping("remove")
public RedirectView remove(Long bno, RedirectAttributes rttr) {
log.info("------------------------------>");
// log.info("삭제 건수 : " + dao.remove(bno));
log.info("------------------------------>");
if(dao.remove(bno) > 0) {
rttr.addFlashAttribute("msg", "글 삭제에 성공하였습니다.");
}
else {
rttr.addFlashAttribute("msg", "너 지금 뭐한거냐?");
}
return new RedirectView("list");
}
}