본문 바로가기

proxy

[Java] Proxy를 사용하여 MyBatis의 Mapper 구현해보기 -3- 이전 글에서 Mapper를 MapperFactory라는 클래스를 통해 생성하여 구현하였었습니다. 앞에서도 말씀드렸지만 이전 예제는 Mapper의 return type이 고정되어 버린다는 단점이 있었습니다. 이 부분을 Generic을 사용하여 수정해보려고 합니다. 기본적으로 앞서 구현했던 Select 어노테이션과 User클래스, 그리고 User를 Select 할 수 있는 UserMapper외에 Depart 도메인에 대한 Mapper를 추가하겠습니다. Depart.java DepartDataMapper.java Depart와 Depart를 Select하는 Mapper입니다. 그 다음 이 Mapper를 대신하여 수행 될 ProxyHandler입니다. MapperProxyHandler.java 보시면 아시겠지만.. 더보기
[Java] Proxy를 사용하여 MyBatis의 Mapper 구현해보기 -2- 우선 앞선 포스트에서 말씀드렸듯이 http://pungjoo.tistory.com/17 이곳에서 Proxy API의 사용방법과 내용에 대해서 먼저 읽어주세요. 위 내용을 기반으로 예제가 작성됩니다. myBatis에서 사용하는 Mapper를 한번 비슷하게 구현해보겠습니다. 우선 Mapper에서 쿼리문을 지정하기 위해 사용될 Annotation을 만들어야 합니다. 실제 MyBatis와 동일하게 Select라는 이름을 사용하겠습니다. Select.java RetentionPolicy가 RUNTIME으로 되어 있으므로, 이 Annotation은 JVM이 실행되는 동안 사용가능하게 됩니다. 그리고 query라는 변수를 통해 위 Annotation은 쿼리식을 가지고 있을 수 있게 됩니다. 그 다음 필요한 클래스는 .. 더보기
[Java] Proxy를 사용하여 MyBatis의 Mapper 구현해보기 -1- 얼마전에 Ibatis 3.0에 해당되는 mybatis가 나왔었습니다. xml에 쿼리를 작성하지 않고도 어노테이션과 인터페이스만으로 쿼리를 실행하고 결과를 받을 수 있게 기능이 추가 되었는데요 대략적인 API의 사용 예를 보면 아래와 같습니다. MyBatis에서 Mapper의 사용예제 UserDataMapper.java 위와 같이 Mapper 인터페이스에 어노테이션을 활용하여 쿼리문을 넣어 놓으면 별도의 구현클래스를 만들지 않아도, SqlSession으로부터 Mapper를 얻어와서 바로 쿼리를 실행하고 그에 따른 결과를 받을 수 있게 되어있습니다. 물론 SqlSession에는 MyBatis에서 사용하기 위해서 기본적은 DB 관련 정보들을 properties로부터 읽어와서 사용하도록 되어있을 것 입니다. 어.. 더보기