개발공작소
728x90

 

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

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

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

 

1. 어노테이션 방식

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

 

기본문법

@Select("쿼리")
public String 메서드명();

@Insert("쿼리")
public String 메서드명();

@Update("쿼리")
public String 메서드명();

@Delete("쿼리")
public String 메서드명();

 

Service

@Autowired
IndexMapper indexMapper;

public void myAnnotation() {
    String testTxt = indexMapper.myAnnotation();
    System.out.println("annotation으로 가져온 값 : " + testTxt);
}

 

Mapper

@Mapper
public interface IndexMapper {

    @Select("select TIMESTAMP from APPQOSSYS.WLM_CLASSIFIER_PLAN")
    public String myAnnotation();

}

 

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

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

 

 

 

2. XML 방식

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

 

 

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

 

Service

@Autowired
IndexMapper indexMapper;

public void myXML() {
    System.out.print("--------------server started--------------");
    String testTXT = indexMapper.myXML();
    System.out.println("myXML 결과 : " + testTXT);
}

 

Mapper

 public String myXML();

 

XML

<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

개발공작소

@모찌바라기

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