Mybatis-config 설정
mybatis-config.xml 생성 위치
src/mybatis 폴더를 생성하고, mybatis-config.xml 파일을 등록
mybatis-config.xml 작성
먼저 xml 파일 최상단에 다음과 같이 xml 형식을 지정하여 이하의 설정내용이 mybatis 설정임을 선언
<?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> 태그 : 외부 java property파일의 내용을 불러올 때 사용
<!-- <properties> 태그 예시 -->
<properties resource=“경로+파일명.properties”>
<!--properties파일에 값 설정 가능-->
<property name=“key명” value=“설정값”>
</properties>
<!-- <properties> 설정값 활용 -->
<dataSource>
<property name=“명칭” value=“${properties에 설정된 key명}” />
<property name=“명칭” value=“${properties에 설정된 key명}” />
</dataSource>
<settings> 태그 : mybatis 구동 시 선언할 설정들을 작성
<!-- <settings> 태그 예시 -->
<settings>
<!-- Null 값이 발생할 경우 빈칸이 아닌 null로 인식하라 -->
<setting name="jdbcTypeForNull" value="NULL"/>
</settings>
속성값 참조 : http://www.mybatis.org/mybatis-3/ko/configuration.html
<typeAliases> 태그 : mybatis에서 사용할 자료형의 별칭을 선언
<!-- <typeAliases> 태그 예시 -->
<typeAliases>
<!-- type에는 패키지 명까지 전부 기술해주어야 한다. -->
<typeAlias type="member.model.vo.Member" alias="Member" />
</typeAliases>
<environments> 태그 : mybatis 에서 연동할 Database 정보를 등록
여러 개의 DB를 사용할 등록하여 사용할 수 있음
bulid()메소드 구현시 매개변수에 environment의 id를 설정하면 됨
<!-- <environments> 태그 예시 -->
<environments default="development">
<!-- environment id를 구분하여 연결할 DB를 여러 개 구성할 수도 있다 -->
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe" />
<property name="username" value="student" />
<property name="password" value="student" />
</dataSource>
</environment>
</environments>
POOLED 와 UNPOOLED
Database 연결을 관리하는 DataSource의 타입은 크게 POOLED와 UNPOOLED로 나눌 수 있음
설정 가능한 type 중 JNDI도 있는데, 이는 mybatis에서 Connection 객체를 생성하여 관리하지 않고 Web Application의 설정을 따르겠다는 의미
구분 | POOLED | UNPOOLED |
특징 | 최초 Connection 객체를 생성 시 해당 정보를 pool 영역에 저장해 두고 이후 Connection 객체를 생성할 때 이를 재 사용 | Connection 객체를 별도로 저장하지 않 고, 객체 호출 시 매번 생성하여 사용 |
장점 | Connection 객체를 생성하여 Database와 연결을 구축하는데 걸 리는 시간이 단축 | Connection 연결이 많지 않은 코드를 작성할 때 간단하게 구현할 수 있음 |
단점 | 단순한 로직을 수행하는 객체를 만들기엔 설정해야 할 정보가 많음 | 매번 새로운 Connection 객체를 생성 하므로 속도가 상대적으로 느림 |
<mappers> 태그 : 사용하고자 하는 쿼리가 정의된 mapper 파일을 등록
<!-- <mappers> 태그 예시 -->
<mappers>
<mapper resource="member/model/mapper/member-mapper.xml" />
<mapper resource=“notice/model/mapper/notice-mapper.xml" />
<mapper resource=“board/model/mapper/board-mapper.xml" />
</mappers>
Mybatis내장 별칭(for parameterType / resultType)
Java 자료형 | Mybatis 타입 |
byte | _byte |
long | _long |
short | _short |
int | _int / _integer |
double | _double |
float | _float |
boolean | _boolean |
String | string |
Byte | byte |
Long | long |
Short | short |
Integer | int / integer |
Double | double |
Float | float |
Boolean | boolean |
Date | date |
Object | object |
Map | map |
HashMap | hashmap |
List | list |
ArrayList | arraylist |
Collection | collection |
Iterator | iterator |
'프로그래밍 > Mybatis' 카테고리의 다른 글
Cause: java.sql.SQLException: Invalid parameter object type. Expected 'java.lang.String' but found 'java.util.LinkedHashMap'.; (0) | 2021.08.24 |
---|---|
09.28(Mybatis 활용) (0) | 2020.09.28 |
09.25(Mapper 설정) (0) | 2020.09.25 |
09.23(Mybatis) (0) | 2020.09.23 |
09.22(Framework) (0) | 2020.09.22 |