Spring boot로 Rest API 만들기 간단 예제 (2)입니다.
Oracle 데이터베이스를 기반으로 하여 VO와 DAO, Mapper 파일까지 만들어보겠습니다.
0. 이전 글 참고
- [SPRING BOOT] REST API 간단 예제 - (1) 프로젝트 생성
1. 환경
- Visual Studio Code : 1.61.2 version
- Spring boot : 2.6.2 version / gradle
- java 11
2. 데이터베이스 Table 생성
CREATE TABLE BOOK_INFO_TBL
(
BOOK_KEY NUMBER NOT NULL,
BOOK_REG_NO VARCHAR2(12 BYTE) NOT NULL,
BOOK_TITLE VARCHAR2(1000 BYTE),
BOOK_AUTHOR VARCHAR2(1000 BYTE),
BOOK_PUBLISHER VARCHAR2(1000 BYTE)
);
- BOOK_INFO_TBL이라는 테이블을 생성했습니다.
- 책과 관련된 정보들을 저장하는 테이블입니다.
3. BookInfoVO.java
package com.test.demo.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class BookInfoVO {
@JsonProperty(value="book_key")
private int book_key;
@JsonProperty(value="book_reg_no")
private String book_reg_no;
@JsonProperty(value="book_title")
private String book_title;
@JsonProperty(value="book_author")
private String book_author;
@JsonProperty(value="book_publisher")
private String book_publisher;
}
- 데이터베이스 테이블에 생성한 컬럼들을 모두 가져왔습니다.
- @JsonProperty에 value를 주어 더 명확하게 했습니다.
- @Getter와 @Setter lombok을 사용해서 getter와 setter를 자동 생성했습니다.
4. BookInfoDAO.java
package com.test.demo.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.test.demo.vo.BookInfoVO;
@Mapper
public interface BookInfoDAO {
List<BookInfoVO> selectAllBookInfo();
BookInfoVO selectByKey(String book_key);
void insert(BookInfoVO bookInfo);
void update(BookInfoVO bookInfo);
void delete(String book_key);
}
- Mapper 방식을 사용하기 위해 @Mapper를 선언했습니다.
- book 테이블을 CRUD 할 수 있도록 select, insert, update, delete를 선언했습니다.
5. Mapper 생성 (BookInfoSQL.xml)
- resources 하위 폴더에 mappers 폴더를 생성하고 그 안에 BookInfoSQL.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.test.demo.dao.BookInfoDAO">
<select id="selectAllBookInfo" resultType="BookInfoVO">
SELECT *
FROM BOOK_INFO_TBL
</select>
<select id="selectByKey" parameterType="String" resultType="BookInfoVO">
SELECT *
FROM BOOK_INFO_TBL
WHERE book_key = #{book_key}
</select>
<insert id="insert" parameterType="BookInfoVO">
INSERT INTO BOOK_INFO_TBL(book_key, book_reg_no, book_title, book_author, book_publisher)
VALUES(#{book_key}, #{book_reg_no, jdbcType=VARCHAR},
#{book_title, jdbcType=VARCHAR}, #{book_author, jdbcType=VARCHAR},
#{book_publisher, jdbcType=VARCHAR})
</insert>
<update id="update" parameterType="BookInfoVO">
UPDATE BOOK_INFO_TBL
SET book_key = #{book_key},
book_reg_no = #{book_reg_no},
book_title = #{book_title},
book_author = #{book_author},
book_publisher = #{book_publisher}
WHERE book_key = #{book_key}
</update>
<delete id="delete" parameterType="String">
DELETE BOOK_INFO_TBL
WHERE book_key = #{book_key}
</delete>
</mapper>
- 위에서 만든 VO와 DAO 파일을 연결하여 SQL 문을 만들었습니다.
- select, insert, update, delete 태그를 각각 이용하였고, id 값은 DAO에 선언한 것과 같은 값을 주었습니다.
- #{}는 입력한 값이 들어갈 곳입니다.
- SQL문과 관련해서는 Oracle 데이터베이스 문법을 참고 바랍니다.
6. 다음 글 참고
- [SPRING BOOT] REST API 간단 예제 - (3) Service 만들기
- [SPRING BOOT] REST API 간단 예제 - (4) Controller, Postman 출력
- [SPRING BOOT] REST API 간단 예제 - (5) Swagger UI 설정
- [SPRING BOOT] REST API 간단 예제 - (6) Swagger UI 꾸미기
이상으로 Database table 생성부터 VO, DAO, Mapper XML 파일까지 만들어보았습니다.
'Web Developer's Story > SPRING BOOT' 카테고리의 다른 글
[SPRING BOOT] REST API 간단 예제 - (6) Swagger UI 꾸미기 (0) | 2022.03.02 |
---|---|
[SPRING BOOT] REST API 간단 예제 - (5) Swagger UI 설정 (0) | 2022.02.25 |
[SPRING BOOT] REST API 간단 예제 - (4) Controller, Postman 출력 (0) | 2022.02.22 |
[SPRING BOOT] REST API 간단 예제 - (3) Service 만들기 (0) | 2022.02.17 |
[SPRING BOOT] REST API 간단 예제 - (1) 프로젝트 생성 (0) | 2022.02.10 |