ibatis (mybatis)
- iBATIS는 SQL에 대한 모든 컨트롤을 하고자 할때 매우 적합하다.
- SQL쿼리들이 매우 잘 최적화되어있을때에도 유용하다.
- iBATIS는 애플리케이션과 데이터베이스간의 설계에 대한 모든 조작을 하고자 할때는 적합하지 않다.
그 이유는 애플리케이션과 데이터베이스간에 서로 잘 구조화되도록 설정이 바뀌어야하기 때문이다.
이러한 경우에 객체관계(object-relational)애플리케이션을 개발할 수 있으며 다른 ORM툴을 사용하는것이 더 올바른 선택일 것이다.
- iBATIS는 상대적으로 더 SQL중심적이기때문에, SQL을 직접적으로 사용하게 된다.
- iBATIS는 관계 데이터베이스가 아닌 데이터베이스들을 사용할때에도 적절치 않다. 그러한 데이터베이스들은 트랜잭션이나 iBATIS가 사용하는 주요 기능들을 제공하지 않기 때문이다.
Hibernate
- Hibernate는 하나부터 열까지 OR매핑을 하고자 할때 가장 좋다.
이는 완벽한 ORM솔루션을 제공하지만 쿼리에 대한 제어를 어렵게 한다.
- Hibernate는 애플리케이션과 데이터베이스 각각에 대한 설계에 대한 완벽한 통제가 가능한 상황에서 이상적인 솔루션이다.
이런 경우 애플리케이션을 데이터베이스에 맞도록 수정하거나 데이터베이스를 애플리케이션에 맞도록 수정할 것이다.
이런 경우에 완전한 object-relational 애플리케이션을 구축하기 위하여 Hibernate를 사용할 수 있을 것이다. Hibernate는 SQL에 익숙하지 않은 객체지향 프로그래머에게 최고의 옵션이다.
느낀점
- spring-struts를 사용할때는 ibatis를 통한 DB 접근을 , GWT로 개발을 할때는 Hibernate를 통해 개발했는데 딱히 뭐가 더 좋다, 뭐가더 나쁘다는 구분하지 못하겠다.
- sql 쿼리에 대한 의존도가 더 높은쪽은 ibatis다. hibernate는 질의할때 sql 쿼리를 직접쓰는 방법과 hibernate 문법을 사용하는 방법이 있기때문에 골라서 쓰면된다.
참고 블로그
'프로그래밍 > Java & GWT' 카테고리의 다른 글
java 빌드 도구 (0) | 2016.08.22 |
---|---|
jdbc란? ORM은? (0) | 2016.08.22 |
[java] awt - button 만들기. (0) | 2016.08.21 |
[ibatis] #, $ 의 차이 (0) | 2016.07.25 |
[GWT] 1. sample 프로젝트 만들기. (0) | 2016.07.20 |
댓글