마이바티스
MyBatis개발자 | MyBatis 팀 |
---|---|
안정된 릴리스 | 3.5.10 / 2022년 5월 23일, [1] 전( |
저장소 | |
기입처 | 자바 |
운영 체제 | 크로스 플랫폼 |
유형 | 지속성 프레임워크 |
면허증. | Apache 라이센스 2.0 |
웹 사이트 | www![]() |
MyBatis는 XML 기술자 또는 주석을 사용하여 저장 프로시저 또는 SQL 문과 객체를 결합하는 Java 지속성 프레임워크입니다.
MyBatis는 Apache License 2.0에 따라 배포되는 무료 소프트웨어입니다.
MyBatis는 iBA의 포크입니다.TIS 3.0은 iBATIS의 오리지널 크리에이터를 포함한 팀에 의해 관리되고 있습니다.
기능의 개요
ORM 프레임워크와 달리 MyBatis는 Java 객체를 데이터베이스 테이블에 매핑하지 않고 Java 메서드를 SQL 문에 매핑합니다.
MyBatis를 사용하면 스토어드 프로시저, 뷰, 복잡성 쿼리, 벤더 고유 기능 등 데이터베이스 기능을 모두 사용할 수 있습니다.레거시 데이터베이스 또는 정규화되지 않은 데이터베이스 또는 SQL 실행을 완전히 제어하기 위해 적합한 선택인 경우가 많습니다.
JDBC에 비해 코딩이 간단해집니다.SQL 문은 한 줄로 실행됩니다.
MyBatis는 선언적인 방식으로 SQL 결과를 객체 트리에 매핑하는 매핑 엔진을 제공합니다.
SQL 문은 XML과 유사한 구문을 사용하는 내장 언어를 사용하거나 Velocity 통합 플러그인을 사용하여 Apache Velocity를 사용하여 동적으로 작성할 수 있습니다.
MyBatis는 Spring Framework 및 Google Guice와 통합됩니다.이 기능을 통해 종속성이 없는 비즈니스 코드를 구축할 수 있습니다.
MyBatis는 선언형 데이터 캐싱을 지원합니다.스테이트먼트는 캐시 가능 마크를 붙일 수 있기 때문에 데이터베이스에서 취득한 데이터는 캐시에 저장되고 그 스테이트먼트의 향후 실행은 데이터베이스에 히트하는 대신 캐시된 데이터를 가져옵니다.MyBatis는 OSCache, Ehcache, Hazelcast 및 Memcached와 통합하기 위한 Java HashMap 및 기본 커넥터를 기반으로 기본 캐시 구현을 제공합니다.다른 캐시 구현을 플러그하는 API를 제공합니다.
사용.
SQL 문은 XML 파일 또는 주석에 저장됩니다.다음은 일부 MyBatis 주석이 있는 Java 인터페이스로 구성된 MyBatis 매퍼를 보여 줍니다.
패키지 org.mybatis.displaces; 일반의 인터페이스 블로그 맵퍼 { @선택("블로그에서 * 선택(ID = #{id})") 블로그 선택 블로그(인트 아이디); }
그 문장은 다음과 같이 실행된다.
블로그 맵퍼 매퍼 = 세션.get mapper(매퍼)(블로그 맵퍼.학급); 블로그 블로그 = 매퍼.선택 블로그(101);
SQL 문과 매핑은 다음과 같이 XML 파일로 외부화할 수도 있습니다.
<?xml version="1.0" encoding="UTF-8" ?> <!DOSCTYPE Mapper PUBLIC -//http://mybatis.org/dtd/mybatis-3-mapper.dtd/DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <매퍼 네임스페이스="mapper.mybatis.mapper.http://mybatis.org/dtd/mybatis-3-mapper.dtd"를 참조하십시오.블로그매퍼"> <select id="selectBlog" 파라미터Type="int" 결과블로그에서 *를 선택합니다.ID = # {id } < / select > < / mapper >
문은 MyBatis API를 사용하여 실행할 수도 있습니다.
블로그 블로그 = 세션.1개 선택("mybatis.mybatis.displaces.블로그 맵퍼select Blog", 101);
자세한 내용은 MyBatis 사이트에서 구할 수 있는 사용자 가이드를 참조하십시오.외부 링크를 참조해 주세요.
스프링 통합
MyBatis는 Spring Framework와 통합됩니다.이 모듈을 통해 MyBatis는 봄 거래에 참여할 수 있습니다.또한 MyBatis 매퍼와 세션을 구축하여 다른 콩에 주입할 예정입니다.
다음 예제에서는 매퍼를 설정하고 이를 "BlogService" 빈에 주입하는 기본 XML 구성을 보여 줍니다.
<콩 id="sql Session Factory" 클래스='mybatis 봄'Sql Session Factory Bean"> <클라이언트> 이름="데이터 원본" 참조="데이터 원본" /> </bean> <콩 id="블로그매퍼" 클래스="mybatis, spring.mapper"매퍼팩토리빈"> <클라이언트> 이름="sql Session Factory" 참조="sql Session Factory" /> <클라이언트> 이름="매퍼 인터페이스" 값="mybatis.mybatis.displaces.블로그 맵퍼" /> </bean> <콩 id="블로그 서비스" 클래스="mybatis.mybatis.displaces.블로그 서비스 임플"> <클라이언트> 이름="블로그매퍼" 참조="블로그매퍼" /> </bean>
MyBatis에게 전화하는 것은 이제 아주 중요한 일입니다.
일반의 학급 블로그 서비스 Impl 용구 블로그 서비스 { 사적인 블로그 맵퍼 블로그 맵퍼; 일반의 무효 setBlogMapper(블로그 맵퍼 블로그 맵퍼) { 이것..블로그 맵퍼 = 블로그 맵퍼; } 일반의 무효 무엇인가를 하다로그(인트 블로그 ID) { 블로그 블로그 = 블로그 맵퍼.선택 블로그(블로그 ID); ... } }
속도 언어
Velocity 언어 드라이버를 사용하면 Apache Velocity를 사용하여 동적 SQL 쿼리를 즉시 생성할 수 있습니다.
<select id="findPerson" lang="parameter"> #set ($pattern = $_parameter.name + '%' ) SELECT * WHERE 사람 이름 Like @{pattern, jdbcType=VARCHAR} </select>
MyBatis 제너레이터
MyBatis는 코드 생성기를 제공합니다.MyBatis Generator는 데이터베이스 테이블(또는 여러 테이블)을 재탐색하여 CRUD 작업(작성, 검색, 업데이트, 삭제)을 수행하는 데 필요한 MyBatis 아티팩트를 생성합니다.
이클립스 플러그인을 사용할 수 있습니다.
Eclipse 플러그인을 사용하는 경우에만 재생성 시 사용자 지정 코드가 유지됩니다.
MyBatis 이행
MyBatis Migrations는 DDL 파일(마이그레이션)을 관리하는 데이터베이스 스키마 변경을 추적하는 Java 명령줄 도구입니다.
마이그레이션을 통해 데이터베이스의 현재 상태를 쿼리하고 스키마 변경을 적용하며 실행 취소할 수 있습니다.또한 서로 다른 개발자에 의해 수행된 동시 데이터베이스 스키마 변경을 감지하고 해결하는 데 도움이 됩니다.
역사
MyBatis 프로젝트는 iBA의 자회사입니다.TIS 3.0으로 iBATIS의 오리지널 크리에이터를 포함한 팀에 의해 관리되고 있습니다.
이 프로젝트는 Apache iBA가 2010년 5월 19일에 작성되었습니다.TIS 3.0이 공개되었고, 팀은 구글 [2]코드의 새로운 이름과 새로운 홈으로 개발을 계속할 것이라고 발표했다.
「 」를 참조해 주세요.
- 휴지 상태
- 스피드먼트
- Java Database Connectivity(Java Database Connectivity)
- 자바 퍼시스텐스 API
- 이클립스 링크
- 에빈
- ooQ
- 아파치 카이엔
- IBM PureQuery
- 하이드레이트
- 아파치 오픈JPA
- 액티브 JPA
레퍼런스
- ^ "Releases · mybatis/mybatis-3". github.com. Retrieved 2022-05-28.
- ^ iBATIS 프로젝트 팀이 Google 코드로 이동
- ^ 안녕 구글 코드 환영 Github