
자바의 관계형 데이터베이스 프로그래밍을 쉽게 할 수 있게 도와 주는 개발 프레임 워크
JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고,
일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며
모든 JDBC 코드 및 매개 변수의 중복작업을 제거한다.

★ 데이터베이스 연동하는 부분에서 성능을 높이려 하는데
기본적으로 connection pool 이라는 객체를 사용함.
데이터베이스와 연결하는 connection을 미리 만들어 둠.
필요할 때 pool에서 갖다 쓰고 다시 반납해서 데이터베이스의 성능을 개선시킴.
Mybatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여
프로그램 코드와 SQL을 분리할 수 있다.
따라서 유지보수가 용이하고 개발이 편리하다는 장점을 가지고 있다.
먼저, 설치를 위해 MyBatis 홈페이지로 가보자.
The MyBatis Blog
A blog about the the MyBatis data mapper framework.
blog.mybatis.org
MyBatis가 어떤 API인지 한 문장으로 설명되어 있다.
"SQL Mapping Framework for Java"

'docs'를 누르면 MyBatis에 대한 설명을 한국어로 볼 수 있는데,
영어를 번역해놓은 것이기 때문에 말이 조금 이해하기 어렵다.
따라서 관련된 내용은 구글링해서 보는 것이 더 낫다고 생각된다.

무조건 버전이 높다고 좋은 것이 아니다.
일하는 환경에서 사용하고 있는 버전에 맞춰 사용하면 된다.
최근 버전부터 보이고 스크롤을 내리면 이전 버전이 나온다.
홀수 버전은 안정화가 되지 않은 경우가 많기 때문에,
일반적으로 짝수 버전을 많이 사용한다.

하단의 zip을 클릭해서 다운로드

다운로드 받은 파일을 압축 풀면 다음과 같이 보인다.
PDF파일은 MyBatis에 대한 설명서이다. (영어로 되어 있다..)

이클립스로 이동해서 작업하는 프로젝트로 이동해서
jar파일을 복사해서 'lib' 폴더에 붙혀 넣기.


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
XML문서임을 정의해주는 부분 (PI)

DB 접속 정보 설정

SQL문장이 모아져 있는 Mapper file

Mapper 설정을 위한 새로운 XML 파일 생성
공유할 수도 있으니 다른 사람이 알아볼 수 있도록 파일명에 'Mapper' 적어주기

MyBatis 공식 홈페이지에 있는 샘플 코드 (매핑된 SQL 구문 살펴보기)
복사 & 붙혀 넣기
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
select 구문 수정
id 와 resultType 을 지정해주어야 한다.
현재 resultType의 경로가 길기 때문에 별칭을 설정해주기로 한다.
<select id="memberList" resultType="kr.smhrd.model.MemberVO">
select * from member order by num desc
</select>
별칭 지정해주기
처음에 작성했던 XML 파일로 넘어와서 <configuration> 하단에
다음와 같은 코드를 적어준다.
별칭을 정할 때에는 첫 글자를 소문자로 작성한다.
(별칭이라는 암묵적인 메세지)
<typeAliases>
<typeAlias type="kr.smhrd.model.MemberVO" alias="memberVO"/>
</typeAliases>
↓

매퍼 파일에서 namespace 수정하면
Mapper 설정 완료!

* namespace란?
처음 만들었던 XML 파일의 <mapper> 경로 수정

driver, url, username, password를 설정해 놓은 properties 파일을 만들어야함

설정해야할 4가지 정보 가져오기.



properties 파일에 작성

가장 먼저 만들었던 'config' 파일에 properties 파일 경로 작성
*properties 안에 있는 4개의 정보를 읽어서 연결해주는 역할

참고 자료
https://khj93.tistory.com/entry/MyBatis-MyBatis%EB%9E%80-%EA%B0%9C%EB%85%90-%EB%B0%8F-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC
