개발공작소
728x90
반응형

 

지금까지 개발업무를 보면서 마이바티스를 당연하게 많이 써왔는데, xml파일을 따로 두어

쿼리문을 작성한 뒤 데이터베이스에 접근하여 CRUD를 했더랬다. 근데 이게 XML방식만 있는게 아니라

어노테이션 방식도 있다는 것을 알게 되서 정리해본다.

 

1. 1. 어노테이션 방식

============================================================================

 

기본문법

<java />
@Select("쿼리") public String 메서드명(); @Insert("쿼리") public String 메서드명(); @Update("쿼리") public String 메서드명(); @Delete("쿼리") public String 메서드명();

 

Service

<java />
@Autowired IndexMapper indexMapper; public void myAnnotation() { String testTxt = indexMapper.myAnnotation(); System.out.println("annotation으로 가져온 값 : " + testTxt); }

 

Mapper

<java />
@Mapper public interface IndexMapper { @Select("select TIMESTAMP from APPQOSSYS.WLM_CLASSIFIER_PLAN") public String myAnnotation(); }

 

이렇게 끝이다. 즉 기존의 mapper.xml까지 가지 않고 Mapper에서 쿼리문까지 실행한다. @를 사용하여

어노테이션처럼 해당 메서드 위에 정의 해주고 쿼리까지 작성해준다..

 

 

 

2. 2. XML 방식

============================================================================

 

 

XML방식은 어노테이션 방식과 달리 .xml에서 데이터베이스에 접근한다.

 

Service

<java />
@Autowired IndexMapper indexMapper; public void myXML() { System.out.print("--------------server started--------------"); String testTXT = indexMapper.myXML(); System.out.println("myXML 결과 : " + testTXT); }

 

Mapper

<java />
public String myXML();

 

XML

<java />
<mapper namespace="com.example.demo.mapper.IndexMapper"> <select id="myXML" resultType="string"> select "TIMESTAMP" from APPQOSSYS.WLM_CLASSIFIER_PLAN </select> </mapper>

 

 

 

이렇게 어노테이션과 XML방식에 대해 알아보았고, 차이점도 명확하다.

어노테이션 방식은 간단한 쿼리문 ( 단순 SELECT문, UPDATE문, INSERT문, DELETE문 ... )에 용이하고,

XML방식은 복잡한 쿼리문 ( join이 들어가거나, function(함수) 등을 이용하는.. )에 용이하다는 것이다..

 

그래서 상황에 따라 편할 것을 쓰면 될 거 같은데... 음.. 성능적으로 문제가 없다면 지금까지 써와서

편한 XML방식을 쓰지 않을까 싶다.. 아니면 단순조회 기능이 필요한데 .xml을 만들 필요가 없다 판단 될 때만

어노테이션을 쓰지 않을까???

728x90
반응형
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!