728x90
반응형
[JS] 게시판
환경
- HeidiSQL 11.3.0.6295
- Maria DB 10.6.3
MariaDB
게시판 테이블 만들기
게시판 테이블의 이름은 board 로명해줍니다.
BOARD_NO : 게시판의 번호
TYPE : 불만/건의/공지 등의 타입 선택
TITLE : 제목
CONTENT : 내용
CNT : 조회수
USER : 글쓴이
YMD : 글쓴 시간
으로 나타내고자 ERD를 구성하였습니다.
CREATE TABLE `board` (
`BOARD_NO` INT(11) NOT NULL AUTO_INCREMENT,
`BOARD_TYPE` VARCHAR(20) NOT NULL COLLATE 'utf8mb3_general_ci',
`BOARD_TITLE` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`BOARD_CONTENT` TEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`BOARD_CNT` INT(11) NULL DEFAULT '0',
`BOARD_USER` VARCHAR(20) NOT NULL COLLATE 'utf8mb3_general_ci',
`BOARD_YMD` TIMESTAMP NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`BOARD_NO`) USING BTREE
)
COLLATE='utf8mb3_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=9
;
[Spring]
vo
DB에서 작성된 것들을 가져와준다.
Board
package talk.server.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Board {
private int BOARD_NO;// 게시판 번호
private String BOARD_TYPE;// 건의, 불만 등 적는거
private String BOARD_TITLE;// 제목
private String BOARD_CONTENT;// 내용
private int BOARD_CNT; //조회수
private String BOARD_USER; // 글 작성자
private Date BOARD_YMD; // 년 월 일 시간 분 초
}
Boardupdate
package talk.server.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Boardupdate {
private int board_no;// 게시글 번호
private String board_type;// 건의, 불만 등 적는거
private String board_title;// 제목
private String board_content;// 내용
}
DAO
BoardDao
package talk.server.dao;
import talk.server.vo.Board;
import talk.server.vo.Boardupdate;
import java.util.ArrayList;
public interface BoardDao {
// 게시글 정보 불러오기
public ArrayList<Board> getAllBoard();
// 게시글 CRUD
//C
public int createsuc(Board board);
// 게시글 디테일 정보 불러오기
public Board boarddetail(int board_no);
// 게시글 업데이트
public int boardupdate(Boardupdate boardupdate);
//게시글 삭제
public void boarddelete(int board_no);
}
service
BoardService
package talk.server.service;
import talk.server.vo.Board;
import talk.server.vo.Boardupdate;
import java.util.ArrayList;
public interface BoardService {
//게시물 전체 리스트
public ArrayList<Board> getAllBoard();
//게시물 작성
public int createsuc(Board board);
//게시물 상세보기
public Board boarddetail(int board_no);
//게시물 업데이트
public int boardupdate(Boardupdate boardupdate);
//게시물 삭제
public void boarddelete(int board_no);
}
BoardServiceImpl
package talk.server.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import talk.server.dao.BoardDao;
import talk.server.vo.Board;
import talk.server.vo.Boardupdate;
import java.util.ArrayList;
@Service
public class BoardServiceImpl implements BoardService{
@Autowired
BoardDao dao;
@Override
public ArrayList<Board> getAllBoard() {
return dao.getAllBoard();
}
@Override
public int createsuc(Board board) {
return dao.createsuc(board);
}
@Override
public Board boarddetail(int board_no){
return dao.boarddetail(board_no);
}
@Override
public int boardupdate(Boardupdate boardupdate) {
return dao.boardupdate(boardupdate);
}
@Override
public void boarddelete(int board_no){
dao.boarddelete(board_no);
}
}
mapper
게시판 board 의 sql 문을 작성해주기 위해 코딩해주는 곳입니다.
<?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="talk.server.dao.BoardDao">
<!--게시판 모든 리스트 불러오기 -->
<select id="getAllBoard" resultType="Board">
select * from board
</select>
<!--게시판 작성 목록 가저와서 넣기 -->
<insert id="createsuc"
parameterType="talk.server.vo.Board">
INSERT INTO BOARD
VALUES(null, #{BOARD_TYPE}, #{BOARD_TITLE}, #{BOARD_CONTENT}, #{BOARD_CNT}, #{BOARD_USER}, #{BOARD_YMD});
</insert>
<!--게시판 상세 보기위한 세부 내용 불러오기 게시판 번호로 -->
<select id="boarddetail" resultType="Board" parameterType="java.lang.Integer">
select * from board
where BOARD_NO = #{board_no}
</select>
<!--게시판 번호로 삭제하기 -->
<delete id="boarddelete" parameterType="java.lang.Integer">
delete from board
where BOARD_NO = #{board_no}
</delete>
<!--해당하는 게시판 번호를 수정하기 -->
<update id="boardupdate" parameterType="talk.server.vo.Board">
UPDATE board
SET BOARD_TYPE=#{board_type}, BOARD_TITLE=#{board_title}, BOARD_CONTENT=#{board_content}, BOARD_YMD=sysdate()
WHERE BOARD_NO=#{board_no}
</update>
</mapper>
[postman] test
게시판 전체 리스트 반환(읽기)
GET : http://localhost:8080/board/boardlist
게시판 작성(만들기)
Post : http://localhost:8080/board/boardcreate
{
"BOARD_TYPE":"테스트하기 타입.",
"BOARD_TITLE":"제목 테스트",
"BOARD_CONTENT":"내용 테스트",
"BOARD_CNT":0,
"BOARD_USER":"태현",
"BOARD_YMD":"11/11/11 11:11:11"
}
- 참고로 포스트맨기능중에 실시간을 보낼수있는게 있나요? 아시면 ㅠㅠ 알려주세요..
- 현재 제 시간 데이터는 저렇게 넣기로 약속을했습니다!
게시판 수정(업데이트)
POST : http://localhost:8080/board/boardupdate
{
"board_no":8,
"board_type":"테스트",
"board_title":"제목 테스트",
"board_content":"내용 테스트"
}
게시판 삭제(삭제)
GET : http://localhost:8080/board/boarddelete?board_no=10
Params 에서 board_no가 key가 되고 VALUE는 삭제하고 싶은 게시판의 번호를 작성해주세요!
728x90
반응형
'개발 > 술Talk' 카테고리의 다른 글
[ IntelliJ ] 빌드 에러 (0) | 2021.09.08 |
---|---|
[Spring & Maria DB] 회원 정보 수정, 회원 정보 리스트 받아오기 (0) | 2021.08.18 |
window 환경 Docker - Kurento ( 도커 - 쿠렌토 ) 사용하기 (11) | 2021.08.03 |
[ BE - JS ] 로그인, 회원가입, 로그아웃 구현 (0) | 2021.08.02 |
[ BE - JS ]JWT ( Security ) (0) | 2021.07.26 |