KKH_RECORDS

01 : MyBatis - 1 개요 및 설치 본문

Records 1 : Study/Framework

01 : MyBatis - 1 개요 및 설치

피아노치는 개발자, kkim 2020. 3. 17. 12:51

https://blog.itpaper.co.kr/java-MyBatis-on-Java-Console/

[MyBatis의 개념]

CRUD(Create, Read, Update, Delete)의 간편화를 위해 xml로 구조화한 Mapper 설정파일로 JDBC를 구현한 영속성 프레임워크.
기존 JDBC를 통해 구현했던 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 xml설정을 통해 쉽게 구현할 수 있게 함

https://mybatis.org/mybatis-3/ko/

 

MyBatis – 마이바티스 3 | 소개

마이바티스는 무엇인가? 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다.

mybatis.org

 

[MyBatis 동작 구조]

MyBatis 흐름

Session Factory Builder에서 build(~)를 이용하여 Session Factory 객체 생성
Session Factory 객체에서 openSession()을 이용해 Session 생성 후 Session에서 mapper.xml 참조 후 실행

 

[내장 별칭]

위 이미지는 사용할 일이 많을 테니, 보고 넘기지 말고 저장해 놓도록 하자!!


[MyBatis Download]

이제 제일 중요한 부분, MyBatis Download이다! 앞에 링크처리되어 있는 글을 누르면 MyBatis 공식 사이트로 이동할 수 있다.

 

 

여기서, [Products] 버튼을 눌러 주자. 버튼에 형광펜 처리를 해 놓아서 알아보기 쉬울 것이다.

 

[Products] 버튼을 눌렀다면, 다음과 같은 화면이 나올 것이다.

제일 위에 나오는 [MyBatis 3] [Links - download]를 누르면 된다. 이것도 역시 형광펜 처리를 해 놓았다.
(2020/03/17 기준 가장 최신 버전은 MyBatis 3-5-4.이다. 다른 최신 버전이 필요하다면 그것을 다운 받으면 된다.

 

[download] 버튼을 눌렀다면 github로 이동할 것이다.

거기서는 해당하는 버전의 [.zip] 파일을 다운로드 해 준다.

현재 가장 최근 버전인 3.5.4 기준으로 다음과 같이 화면이 구성된다.

혹시나를 위해 [.zip]파일도 올려 놓을 테니 참조하시길 바란다.

mybatis-3.5.4.zip
5.23MB

다운로드 받은 [.zip] 파일의 압축을 해제하면, 다음과 같이 내부 파일이 구성되어 있을 것이다.

 

원하는 프로젝트의 [lib]에 가운데 있는 [.jar] 파일을 넣어주면 된다. (서버를 만든다던가, 인코딩 설정이라던가 등의 내용은 생략)

 

다음에는 프로젝트 이름[1_MyBatis]에 대고 [new] - [other] - [source folder]를 만든다. 이름은 [resources] 이다.

 

다음이다. 상단 탭의 [Window] - [Preference] - [XML] - [XML Catalog]

[XML Catalog]에서 [User Specified Entries]를 선택한 뒤 [Add...]를 해 준다.

 

[Add ...]을 누른다면 다음과 같은 입력 폼이 뜰 것이다.

Location : http://mybatis.org/dtd/mybatis-3-config.dtd(복사하여 넣기)
Key Type : [Public ID](Default)
Key : -//mybatis.org/DTD Config 3.0//EN(복사하여 넣기)

위의 내용을 알맞게 넣은 뒤 [확인] 버튼을 누르고 [Apply and Close] 해 주면 된다.

 

[xml] 파일을 만들 차례다.

[new] - [other] - [xml Files]을 누른 뒤 next에서 DTD를 선택한다.
 : DTD(Document Type Definition : 내가 지금 사용할 XML에 대해 새로운 문서 구조를 정의

그 다음에는 위에서 설정한 부분을 선택하고 next - finish를 누른다.

 

XML 파일 전문이다. 붙여넣기 한 뒤에 한 번씩 읽어보자.

<?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>
	<!-- configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?) -->
	
	<properties resource="/driver.properties"/>
	
	<!-- MyBatis 설정 관련 기본 세팅 -->
	<settings>
		<setting name="jdbcTypeForNull" value="NULL"/><!-- Data가 Null값일 경우 처리하는 방식 (빈칸이 아니라 null로 인식)-->
	</settings>
	
	
	<!-- DB 연결 정보 선언 부분 -->
	<!-- development : 연결 정보를 여러 개 생성하여 아이디로 구분하고, 기본으로 연결할 설정 정보를 저장 -->
	<environments default="development">
		<!-- DB 연결 설정 정보 선언 -->
		<environment id="development">
			<transactionManager type="JDBC">
				<!-- TR을 제어하기 위한 TransactionManager와 함께 DB Connection Instance를 가져오기 위한 Data Source 포함. 
					 TR을 누가 관리할 것인지 선택
						 JDBC : 수동 commit, JDBC가 Commit, Rollback을 직접 처리
						 MANAGED : 자동 commit, TR에 대해 직접적인 영향을 행사하지 않음. Container가 TR 생명주기 관리 -->
			</transactionManager>
			<dataSource type="POOLED">
				<!-- 실제 DB접속에 관한 정보들을 넣는 태고
					 type 속성은 Connection Pool을 사용할건지 안 할건지
					 
					 type = "UNPOOLED" / "POOLED" / "JDNI"
					 
					 		 UNPOOLED : DB 관련 요청이 들어올 때마다 실시간으로 Connection 객체를 open/close함.
					 		 		  : 미리 커넥션 객체를 만들어놓는 방식이 아니므로 조금 느릴 수 있다
					 		 		  
					 		 POOLED	  : Connection 객체를 미리 만들어놓고 관리 → 객체를 만드는 데 시간이 걸림
					 		 		  : 사용자 요청 시마다 DB에 연결하여 명령을 실행하고, 명령이 종료되더라도 연결 종료하지 않고 Pool에 저장하여 요청 시마다 Pool에서 Connection을 다시 꺼내 재사용.
					 		 		  : 재사용할 Connection 없는 경우 새로운 Connection 생성
					 		 		  : (Web Applicaton의 방법으로 Web Service에서는 Connection Pool을 반드시 이용하는 것이 좋음)
					 		 		  
					 		 JDNI -->
				 
				<!-- 연결에 필요한 정보들을 propertiy Tag로 등록 -->
				 
				<!-- 1. driver, url, username, password 정보들을 직접 작성하기--><!-- 
				<property name="drive"		value="oracle.jdbc.driver.OracleDriver"/>
				<property name="url"		value="jdbc:oracle:thin:@localhost:1521:xe"/>
				<property name="username"	value="MyBatis"/>
				<property name="password"	value="MyBatis"/> -->
				 
				<!-- 2. driver.properties 파일을 만들어 연결 -->
				<property name="drive"		value="${driver}"/>
				<property name="url"		value="${url}"/>
				<property name="username"	value="${username}"/>
				<property name="password"	value="${password}"/>
			</dataSource>
		</environment>
	</environments>
</configuration>

 


 

[참고사항]

iBatis : MyBatis의 예전 버전

 

 

 

 

'Records 1 : Study > Framework' 카테고리의 다른 글

01 : MyBatis - 3 최종  (0) 2020.03.25
01 : MyBatis - 2 기본 보기  (0) 2020.03.18
Framework 기본  (0) 2020.03.17
Comments