java를 사용하여 json방식으로 결과를 제공하는 CRUD 기능과 커서 기반 페이징을 구현한 게시판입니다.
- 프레임워크
- Spring Boot
- mybatis
- 라이브러리
- lombok
- 데이터베이스
- MySQL
- 빌드 툴
- Maven
GET : localhost:8080/boards/?page=1
GET : localhost:8080/boards/?page=2&cursor=8
<select id="list" resultType="kr.flab.ht.project.model.Board">
SELECT id, author, title
FROM board
<if test="cursor != null">
WHERE id<![CDATA[<]]>#{cursor}
</if>
ORDER BY id DESC
LIMIT #{listSize}
</select>
- 첫 번째 페이지 요청에는 cursor 값을 지정하지 않으므로 null값이 입력되어 DB의 마지막 행이 입력된다.
- 두 번째 페이지 요청부터는 이전 페이지의 가장 작은 인덱스를 cursor의 값으로 지정하여 요청한다.
POST : localhost:8080/boards/
- 위와 같이 JSON 형식의 데이터를 HTTP메소드 BODY에 실어서 요청을 하면 데이터베이스에서는 내용을 입력한다.
GET : localhost:8080/boards/11
- 게시물의 Index를 통하여 DB에서 해당 객체를 열람할 수 있다.
PUT : localhost:8080/boards/
- index를 주입하지 않는 이유는 기본키로 auto_increment 설정을 했기 때문에 DB에 행이 추가되면 자동으로 입력된다.
DELETE : localhost:8080/boards/11
- 요청에 따라 id값에 해당하는 데이터를 삭제한다.