RESTful CRUD 구성_2

dwanGim·2022년 9월 29일
0

spring_basic

목록 보기
40/41
post-thumbnail

CRUD 쿼리 작성

HR 오라클 계정 내에 있는 countries 테이블과 연동하기 위해 VO를 생성하고

@Data 어노테이션을 달아줍니다.

기초작업이 끝났으니

mapper 에 쿼리를 작성하여 DB와 연결해보겠습니다.

먼저 SELECT 문입니다.

이렇게

mapper안에 select문을 작성했습니다. 바로 JUnit 테스트를 돌려보겠습니다.

package com.ack.test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.ack.mapper.CountriesMapper;

import lombok.extern.log4j.Log4j;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
		"file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class MapperTests {

	@Autowired
	private CountriesMapper CountriesMapper;
	
	
	@Test
	public void getCountriesTest() {
		
		log.info(CountriesMapper.getCountries());
		
	}
	
	
	
}

아래는 테스트 결과 콘솔창입니다.

이렇게 테스트의 성공을 확인했으니 모든 CRUD 쿼리를 지체없이 작성해보겠습니다.

인터페이스를 만들어두고 시작해보겠습니다.

CRUD mapper.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.ack.mapper.CountriesMapper">

	<select id="getCountries" resultType="com.ack.domain.CountriesVO">
	
		SELECT * FROM countries
	
	</select>
	
	<select id="getDetail" resultType="com.ack.domain.CountriesVO">
		
		SELECT * FROM countries WHERE country_id = #{country_id}
		
	</select>
	
	<insert id="insertCountries">
	
		INSERT INTO countries (country_id, country_name, region_id)
			VALUES
		(#{country_id}, #{country_name}, #{region_id})
	
	</insert>
	
	<update id="updateCountries">
		UPDATE countries
			SET
				country_name = #{country_name},
				region_id = #{region_id}
			WHERE
				country_id = #{country_id}
	</update>
	
	<delete id="deleteCountries">
	
		DELETE FROM countries
			WHERE country_id = #{country_id}
	
	</delete>

</mapper>

service 생성

package com.ack.service;

import java.util.List;

import com.ack.domain.CountriesVO;

public interface CountriesService {
	
	public List<CountriesVO> getCountries();
	
	public CountriesVO getDetail(String country_id);
	
	public void insertCountries(CountriesVO vo);
	
	public void updateCountries(CountriesVO vo);

	public void deleteCountries(String country_id);
	
}

service 동작을 상속받아 수행할 class 파일도 생성해줍니다.

package com.ack.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ack.domain.CountriesVO;
import com.ack.mapper.CountriesMapper;

@Service
public class CountriesServiceImpl implements CountriesService {

	@Autowired
	private CountriesMapper mapper;

	@Override
	public List<CountriesVO> getCountries() {
		return mapper.getCountries();
	}

	@Override
	public CountriesVO getDetail(String country_id) {
		return mapper.getDetail(country_id);
	}

	@Override
	public void insertCountries(CountriesVO vo) {
		mapper.insertCountries(vo);
	}

	@Override
	public void updateCountries(CountriesVO vo) {
		mapper.updateCountries(vo);
	}

	@Override
	public void deleteCountries(String country_id) {
		mapper.deleteCountries(country_id);
	}
	
	
}

이제 본격적으로 REST CRUD를 구현할 준비가 끝났습니다.

다음 포스팅에서 구체적으로 다루도록 하겠습니다.

profile
배울 게 참 많네요.

0개의 댓글