MyBatis | JeongKeepsCalm

MyBatis

MyBatis

  • ORM Framework 중 하나로 Java 언어를 위한 오픈 소스 SQL 매퍼 프레임워크.
  • SQL 문장을 XML 파일이나 애너테이션을 통해 작성하고, 이를 객체 지향 언어인 Java와 매핑하여 사용할 수 있게 해준다.
  • 즉, 자바 개발자들이 데이터베이스를 쉽게 다룰 수 있도록 돕는다.

MyBatis 장점

  1. 유연성: SQL쿼리를 직접 작성하므로 매우 유연하다. 동적 쿼리 작성 가능.
  2. 간결성: SQL쿼리와 프로그래밍 언어 코드를 분리하여 간결하며 유지보수에 용이하다.
  3. 성능: MyBatis는 캐시 기능을 제공하여 데이터베이스 연산 속도를 높인다.
  4. 다양한 데이터베이스 지원



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 사용