Web/Spring
[Spring] ORM vs MyBatis / SqlSessionTemplate
angelatto
2021. 3. 28. 21:56
※ ORM (Object Relational Mapping )
- 객체 관계 맵핑
애플리케이션에서 자바 객체를 ORM에 넘겨주면 ORM은 SQL로 생성해서 DB에 전달해서 결과를 가져오고,
결과를 다시 자바 객체로 변환하여 전달해준다.
애플리케이션 개발자는 SQL을 볼 수 없다.
ORM 내부에 들어가있기 때문에 설정만 잘 하면 SQL이 자동적으로 생성된다.
ORM에서 생성되는 SQL문이 DB에서 실행되어야 하므로 ORM과 DB는 밀접한 관계가 있다.
그럼 애초에 DB를 생성할 때 ORM에 최적화된 구조로 생성해야 한다.
ORM은 개발자가 SQL에 전혀 관여할 수 없다. 베일에 쌓여져 있다.
이 문제를 해결하기 위해서 MyBatis는 애플리케이션과 SQL문을 직접 생성한다.
직접 SQL을 작성할 수 있기 때문에 복잡한 DB에도 유연하게 대처할 수 있다.
※ MyBatis
▶ 특징
- SQL과 객체를 매핑하는 Mapper XML 문서 작성
- SQL 기반 매핑이므로 기술적 난이도가 적음
- 복잡한 JDBC 코드를 간소화하여 줄여줌
[Document 중요 ★★★]
MyBatis – 마이바티스 3 | 소개
Copyright © 2009–2020MyBatis.org. .
mybatis.org
※ SqlSessionTemplate
- 자바코드 -> XML -> SQL로 변환이 되려면 SqlSessionTemplate 객체가 필요하다.
자바코드 -> SqlSessionTemplate -> SqlSessionFactory -> XML -> SQL -> 실행