ORACLE

* mybatis

- iBatis(오픈소스 프로젝트)가 구글 코드(http://code.google.com)으로 옮기면서 MyBatis로 명칭이 변경됨
http://www.mybatis.org

다운로드


- 쿼리를 매핑하여 데이터 결과를 반환하는 Data Mapper Framework
- Java, .Net 지원

 

 

 

 

* 특징

- 프로그래밍 코드로부터 SQL 코드를 분리
- 입력 매개변수를 라이브러리 클래스로 전달하고 출력
- 비즈니스 로직 클래스로부터 데이터액세스클래스를 분리
- 트랜잭션 관리 가능

* 사용 방법

mybatis-3.4.1.jar 파일을 WEB-INF/lib 디렉토리에 복사

MybatisService.java와 sqlMapConfig.xml 파일을 Java Resource/src/config 패키지에 복사

sample.xml 파일을 활용하여 SQL 명령어 작성
 

 

class MybatisService

package config;

import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MybatisService {
// SqlSessionFactoryBuilder => SqlSessionFactory
//		=> SqlSession	
	//SqlSession 객체 생성기
	private static SqlSessionFactory factory;
	static {
		try {
			// Java Resources의 src
			Reader r = Resources.getResourceAsReader(
					"config/sqlMapConfig.xml");
			//SqlSessionFactory 생성기
			factory = new SqlSessionFactoryBuilder()
					.build(r);
			r.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static SqlSessionFactory getFactory() {
		return factory;
	}
}

 

sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- xml 지시어 -->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 알리아스 설정 -->
	<typeAliases>
<!-- typeAlias type="전체경로" alias="별칭" -->	
	  <typeAlias type="emp.dto.EmpDTO" alias="e" />
	</typeAliases>
	<!-- db연결 참조코드 -->
	<environments default="">
		<environment id="">
			<transactionManager type="JDBC" />
			<dataSource type="JNDI">
				<property name="data_source" 
				value="java:comp/env/oraDB" />
			</dataSource>
		</environment>
	</environments>
	<!-- 실제 sql query -->
	<mappers>
		<mapper resource="emp/mapper/emp.xml" />
		<mapper resource=
			"student/mapper/student.xml" />		
		<mapper resource=
			"student/mapper/dept.xml" />	
		<mapper resource=
			"student/mapper/prof.xml" />	
		<mapper resource=
			"student/mapper/lecture.xml" />		
		<mapper resource=
			"memo/mapper/memo.xml" />	
		<mapper resource=
			"board/mapper/board.xml" />												
	</mappers>
</configuration>





 

sample.xml ( emp.xml)

<?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="emp">
<!-- id="태그의 식별자"
resultType="sql 명령어의 리턴타입(레코드의 자료형)" 
샵{변수} => 입력매개변수   -->
	<select id="empList2"
		resultType="e"> 
		select * 
		from (
		    select A.*, rownum as rn
		    from (
		        select empno, ename
		        from test01
		        order by empno
		    ) A
		)
		where rn between #{start} and #{end}	
	</select>
	
	<select id="empCount2" resultType="int">
		select count(*) from test01
	</select>
	
</mapper>

 

 

 

 

about author

PHRASE

Level 60  머나먼나라

술이 백 약 중의 으뜸이라고는 하나, 만병은 또한 술로부터 일어난다.

댓글 ( 4)

댓글 남기기

작성