반응형
참고자료
https://jung-story.tistory.com/121
개요
이번에는 Spring을 통해 Controller가 Service를 호출하고 그 Service가 DAO를 호출하여 호출된 DAO가 어떻게 Xml 파일과 Mapping이 되는지 알아보도록 하겠습니다.
설명
반환형은 JSON 객체로 하도록 하였으며, Datasource 라는 enum 열거형 파일을 return값에 추가해주는 DAO를 만들어줍니다.
@Repository
@Transactional
public class TestDAO
{
public TestJSON insert(String sqlNameSpace, String sqlNm, TestJSON acJson) throws Exception
{
return this.insert(sqlNameSpace, sqlNm, acJson, null, Datasource.test);
}
}
Service Interface 생성
( Service를 인터페이스로 생성하는것은 나중에 유지보수가 더 좋기 때문입니다.)
public interface CustomBoardService
{
TestJSON custominsertRtnBrd(TestJSON tjson) throws Exception;
}
생성한 Service Interfacer 구현
여기서 custominsert의 값은 위에서 생성한 Mapper Interface의 List명입니다.
@RequiredArgsConstructor
@Service("customboardService")
public class CustomBoardServiceImpl implements CustomBoardService
{
private final TestDAO tDao;
@Override
@Transactional(readOnly = false)
public TestJSON custominsertRtnBrd(TestJSON tjson) throws Exception
{
return tDao.insert("(xml mapper 테그의 namespace와 일치)", "custominsert", tjson);
}
}
Mapper.xml 파일생성
여기서 insert 테그안의 id값은 Mapper Interface 의 List명과 동일하게 해야함.
<?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="Service에서 호출한 dao의 첫번째 파라메터와 일치">
<insert id="custominsert" parameterType= "java.util.HashMap">
Insert into "테이블명"
(ID
,name
,content
)
VALUES ( #{ID}
, #{name}
, #{content}
)
</insert>
</mapper>
이렇게 Spring에서 간단하게 Service가 DAO를 호출하고 그 DAO가 Mapper.xml과 Mapping되는 방법에 대해서 알아보았습니다.
반응형
'서버 > Spring' 카테고리의 다른 글
[Spring] - Service를 Interface로 생성 하는 이유. (AOP, 결합도) (2) | 2021.08.11 |
---|---|
[Spring] 생명주기 분석 및 - 생명주기에 따른 코드 (Ajax, Json 사용) (0) | 2021.08.06 |
[Spring] 자바 ORM 표준 JPA 란? (0) | 2021.07.27 |
[Spring] Spring boot 내장 서버 (Tomcat , Undertow) 및 서블릿, 서블릿컨테이너 (0) | 2021.07.16 |
[Spring] 빌드도구 maven 과 gradle 차이점 및 장단점 비교 (0) | 2021.07.09 |