Spring Boot 게시판-VO, Mapper, Service, ServiceImpl, DB 테이블

dasol Park·2023년 4월 21일
0

Spring Boot 게시판

목록 보기
2/4
post-thumbnail

https://corini.tistory.com/entry/%ED%83%80%EC%9E%84%EB%A6%AC%ED%94%84Thymeleaf%EB%A1%9C-%ED%8C%8C%EC%9D%BC%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B0-1-%EA%B5%AC%EC%83%81-%EB%B0%8F-%EC%8B%9C%EC%9E%91%EC%97%90-%EC%95%9E%EC%84%9C-1n-draft
위의 문서를 참고해서 시작한다.

package com.project.board.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class BoardVO {
    private int b_no; //게시물 번호
    private String title; //게시물 제목
    private String content; //게시물 내용
    private String writer; //작성자
    private Date reg_date; //작성일
}

Lombok을 이용해서 BoardVO를 작성한다.

package com.project.board.mapper;

import com.project.board.bean.BoardVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface BoardMapper {
    List<BoardVO> getBoardList(); //게시물 리스트
    BoardVO boardDetail(int b_no); //게시글 세부내용
    int boardInsert(BoardVO board); //게시글 생성
    int boardUpdate(BoardVO board); //게시글 수정
    int boardDelete(int b_no); //게시물 삭제
}

interface로 파일을 생성하고 Mapper를 작성한다.

package com.project.board.service;

import com.project.board.bean.BoardVO;

import java.util.List;

public interface BoardService {
    List<BoardVO> getBoardList();
    BoardVO boardDetail(int b_no);
    int boardInsert(BoardVO board);
    int boardUpdate(BoardVO board);
    int boardDelete(int b_no);
}

BoardService.jave

package com.project.board.service;

import com.project.board.bean.BoardVO;
import com.project.board.mapper.BoardMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BoardServiceImpl implements BoardService{

    @Autowired
    BoardMapper boardMapper;

    @Override
    public List<BoardVO> getBoardList() {
        return boardMapper.getBoardList();
    }

    @Override
    public BoardVO boardDetail(int b_no) {
        return boardMapper.boardDetail(b_no);
    }

    @Override
    public int boardInsert(BoardVO board) {
        return boardMapper.boardInsert(board);
    }

    @Override
    public int boardUpdate(BoardVO board) {
        return boardMapper.boardUpdate(board);
    }

    @Override
    public int boardDelete(int b_no) {
        return boardMapper.boardDelete(b_no);
    }
}

BoardServiceImpl를 작성한다.


위와 같이 테이블을 작성해준다.

<?xml version="1.0" encoding="UTF-8"?>
<!-- mapper DTD 선언 -->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--SQL Mapping>-->
<mapper namespace="com.project.board.mapper.BoardMapper">
    <select id="getBoardList" resultType="com.project.board.bean.BoardVO">
        SELECT * FROM board
        ORDER BY b_no
    </select>

    <select id="boardDetail" parameterType="int" resultType="com.project.board.bean.BoardVO">
        SELECT * FROM board
        WHERE b_no = #{b_no}
    </select>

    <insert id="boardInsert" parameterType="com.project.board.bean.BoardVO" keyProperty="b_no">
        INSERT INTO board(title, content, writer)
        VALUES (#{title}, #{content}, #{writer})
    </insert>

    <update id="boardUpdate" parameterType="com.project.board.bean.BoardVO">
        UPDATE board SET
        <if test="title != null">title=#{title}</if>
        <if test="title != null and content != null">,</if>
        <if test="content != null">content=#{content}</if>
        WHERE b_no=#{b_no}
    </update>

    <delete id="boardDelete" parameterType="int">
        DELETE FROM board WHERE b_no=#{b_no}
    </delete>
</mapper>

resoures/mapper/BoardMapper.xml 파일에 위와 같이 작성해준다.

profile
반갑습니다.

0개의 댓글