MyBatis
- ORM Framework 중 하나로 Java 언어를 위한 오픈 소스 SQL 매퍼 프레임워크.
- SQL 문장을 XML 파일이나 애너테이션을 통해 작성하고, 이를 객체 지향 언어인 Java와 매핑하여 사용할 수 있게 해준다.
- 즉, 자바 개발자들이 데이터베이스를 쉽게 다룰 수 있도록 돕는다.
MyBatis 장점
- 유연성: SQL쿼리를 직접 작성하므로 매우 유연하다.
동적 쿼리작성 가능. - 간결성: SQL쿼리와 프로그래밍 언어 코드를 분리하여 간결하며 유지보수에 용이하다.
- 성능: MyBatis는 캐시 기능을 제공하여 데이터베이스 연산 속도를 높인다.
- 다양한 데이터베이스 지원
ORM Framework
Object-Relational Mapping Framework로 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 데이터를 매핑해주는 도구이다.
- Java: Hibernate, MyBatis, EclipseLink, Spring Data JPA
- .NET: Entity Framework, Dapper, NHibernate
- Python: SQLAlchemy, Django ORM, Peewee
- Ruby: ActiveRecord (Ruby on Rails에서 사용)
- PHP: Doctrine, Eloquent (Laravel에서 사용)
- JavaScript: Sequelize, TypeORM, Mongoose (MongoDB를 위한 ODM)
동적쿼리(Dynamic Query)
selectKey
1
2
3
<selectKey keyProperty="mnCd" resultType="string" order="BEFORE">
SELECT IFNULL(MAX(mnCd) + 1, 1) AS mnCd FROM test
</selectKey>
selectKey를 적용하여, insert 문 안에 있는 #{mnCd} 값을 적용할 수 있다.
foreach
1
2
3
4
5
6
<if test="checkedList.size != null and checkedList.size != 0">
and code in
<foreach item="item" index="index" collection="checkedList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
여러 체크박스의 값을 활용할 때 foreach 사용