맨위로가기

마이바티스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

마이바티스는 자바 객체를 데이터베이스 테이블에 직접 매핑하지 않고, 자바 메서드를 SQL 구문에 매핑하는 ORM 프레임워크이다. JDBC에 비해 코딩이 단순하고 SQL 문 실행을 한 줄로 처리할 수 있으며, SQL 문은 XML 파일이나 어노테이션에 저장하여 관리할 수 있다. 스프링 프레임워크 및 구글 구아이스와 통합을 지원하며, 선언적 데이터 캐싱도 가능하다. 마이바티스는 XML 파일, 어노테이션, 매퍼 인터페이스를 사용하여 SQL 문을 정의하고 실행하며, MyBatis API를 직접 사용할 수도 있다. 또한 스프링 프레임워크와의 통합, Velocity 언어 지원, 코드 생성기, 데이터베이스 스키마 변경을 관리하는 도구 등을 제공한다. 마이바티스는 아이바티스 3.0의 하위 프로젝트로 시작되었으며, 대한민국에서 전자정부 표준프레임워크에 포함되어 사용되고 있다.

더 읽어볼만한 페이지

  • 지속성 프레임워크 - 하이버네이트
    하이버네이트는 자바 객체와 관계형 데이터베이스 간 변환을 자동화하는 오픈 소스 ORM 프레임워크로, 다양한 기능 추가와 발전을 거쳐 여러 하위 프로젝트 및 구성 요소를 포함하며 .NET 환경을 위한 포팅 버전도 존재한다.
  • 객체 관계 매핑 - 엔티티 프레임워크
    엔티티 프레임워크는 .NET 환경에서 O/R 매핑을 통해 데이터베이스 작업을 간편하게 처리하도록 마이크로소프트에서 개발한 기술로, 개발자가 엔티티를 통해 데이터를 조작하여 코드 양을 줄이고 애플리케이션 개발 및 유지보수를 간소화하며, 다양한 데이터베이스 시스템과의 호환성을 제공한다.
  • 객체 관계 매핑 - 자바 퍼시스턴스
    자바 퍼시스턴스(JPA)는 객체 관계 매핑(ORM)을 위한 자바 플랫폼 기술 규격으로, 여러 버전 업데이트와 자카르타 퍼시스턴스로의 명칭 변경을 거쳐 엔티티, JPQL 등의 주요 구성 요소를 통해 개발자가 데이터베이스를 객체 지향적으로 다루도록 지원합니다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
    브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
    광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
마이바티스 - [IT 관련 정보]에 관한 문서
기본 정보
이름MyBatis
개발자MyBatis 팀
최신 릴리스 버전3.5.10
최신 릴리스 날짜2022년 5월 23일
운영체제크로스 플랫폼
프로그래밍 언어자바 ..NET
장르영속성 프레임워크
라이선스아파치 라이선스 2.0
웹사이트www.mybatis.org

2. 특징

ORM 프레임워크와 달리, 마이바티스(MyBatis)는 자바 객체를 데이터베이스 테이블에 직접 매핑하지 않고, 자바 메서드를 SQL 구문에 매핑한다.[1] 저장 프로시저, 뷰, 복잡한 쿼리, 벤더 고유 기능 등 모든 데이터베이스 기능을 활용할 수 있으며, 레거시 또는 비정규화된 데이터베이스에서 SQL 실행을 완벽하게 제어해야 하는 경우에 적합하다.[1]

JDBC에 비해 코딩이 단순해지고, SQL 구문 실행을 한 줄로 처리할 수 있다.[1] 마이바티스는 선언적 방식으로 SQL 결과를 객체 트리로 매핑하는 매핑 엔진을 제공한다.[1] SQL 구문은 XML과 유사한 구문을 가진 내장 언어를 사용하거나, Velocity 통합 플러그인을 사용하여 아파치 Velocity로 동적 구축이 가능하다.[1]

마이바티스는 스프링 프레임워크, 구글 구아이스와 통합되어 종속성 없는 비즈니스 코드를 구축할 수 있게 한다.[1] 또한, 선언적 데이터 캐싱을 지원하여 구문을 캐시 가능으로 표시할 수 있다. 데이터베이스에서 검색된 데이터는 캐시에 저장되며, 이후 해당 구문 실행 시 데이터베이스 접근 대신 캐시된 데이터를 검색한다.[1] Java HashMap 기반 기본 캐시 구현을 제공하며, OSCache, Ehcache, Hazelcast, Memcached와 통합하기 위한 기본 커넥터 및 다른 캐시 구현 연결을 위한 API를 제공한다.[1]

3. 사용법

SQL 문은 XML 파일이나 어노테이션에 저장할 수 있으며, 자바 인터페이스 (매퍼)나 MyBatis API를 통해 실행할 수 있다. 더 자세한 내용은 마이바티스 사이트의 사용자 안내서를 참조하면 된다.

3. 1. XML 사용

SQL 문은 XML 파일이나 어노테이션에 저장할 수 있다. 다음은 XML을 사용하여 SQL 문과 매핑을 정의하는 예시이다.















위 코드는 `org.mybatis.example.BlogMapper` 네임스페이스 안에 `selectBlog`라는 ID를 가진 `

select * from Blog where id = #{id}







다음과 같이 마이바티스 API를 사용하여 문을 실행할 수도 있다:



Blog blog = session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);



더 자세한 사항은 마이바티스 사이트의 사용자 안내서를 참조하면 된다.

매퍼 인터페이스는 마이바티스의 새로운 특징으로, 문자열 사용을 피하고 IDE의 코드 지원 기능을 활용할 수 있게 한다. 매퍼는 DAO (데이터 접근 객체)와 유사하지만, 인터페이스 상의 각 SQL문에 대응하는 하나 이상의 메서드로 구성된다는 차이점이 있다. 인터페이스의 구현은 실행 시 마이바티스가 동적 프록시로 생성하므로 별도로 구현할 필요가 없다.

4. 스프링 프레임워크 통합



















```

이제 마이바티스를 호출하는 것은 단순히 빈을 호출하는 것과 같다.

```java

public class BlogServiceImpl implements BlogService {

private BlogMapper blogMapper;

public void setBlogMapper(BlogMapper blogMapper) {

this.blogMapper = blogMapper;

}

public void doSomethingWithABlog(int blogId) {

Blog blog = blogMapper.selectBlog(blogId);

...

}

}

5. Velocity 언어

Velocity 언어 드라이버를 사용하면 아파치 Velocity를 사용하여 동적으로 SQL 쿼리를 생성할 수 있다.

```html+velocity


6. MyBatis Generator

MyBatis Generator는 데이터베이스 테이블(또는 여러 테이블)을 탐색하여 CRUD (생성, 조회, 수정, 삭제) 작업을 수행하는 데 필요한 MyBatis 아티팩트를 생성하는 코드 생성기이다.[1]

이클립스 플러그인을 사용할 수 있으며,[1] 이클립스 플러그인을 사용하는 경우 다시 생성할 때 사용자 정의 코드를 보존한다.[1]

7. MyBatis Migrations

MyBatis Migrations는 데이터베이스 스키마 변경 사항을 추적하고 DDL 파일(마이그레이션)을 관리하는 자바 명령줄 도구이다.

마이그레이션을 사용하면 데이터베이스의 현재 상태를 쿼리하고 스키마 변경 사항을 적용하거나 실행 취소할 수 있다. 또한 여러 개발자가 동시에 수행한 데이터베이스 스키마 변경 사항을 감지하고 해결하는 데에도 도움이 된다.

8. 역사

MyBatis는 아이바티스 3.0의 하위 프로젝트이며, 아이바티스의 원래 제작자를 포함한 팀에 의해 유지 관리된다.[1]

이 프로젝트는 2010년 5월 19일에 아파치 아이바티스 3.0이 출시되었을 때 만들어졌으며, 팀은 새로운 이름과 구글 코드에서 개발을 계속할 것이라고 발표했다.[2] 이후, MyBatis는 전자정부 표준프레임워크에 포함되어 한국에서 널리 사용되게 되었다.

참조

[1] 메일 iBATIS Project Team Moving to Google Code http://mail-archives[...]
[2] 블로그 Bye Google Code welcome Github http://blog.mybatis.[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com