[ MyBatis3 ] 매퍼설정 XML(typeHandlers, objectFactory, ...)

 typeHandlers


- MyBatis가 PreparedStatement에 파라미터를 세팅하고 ResultSet에서 값을 가져올때 마다, TypeeHandler는     적절한 자바타입의 값 을 가져오기 위해 사용된다.
- 지원하지 않거나 비표준인 경우 아래와 같이 오버라이드 하여 사용 가능 하다.
public class ExampleTypeHandler implements TypeHandler {
@Override
public Object getResult(ResultSet rs, String str) throws SQLException {
// TODO Auto-generated method stub
return rs.getString(str);
}

@Override
public Object getResult(CallableStatement cs, int i) throws SQLException {
// TODO Auto-generated method stub
return cs.getString(i);
}

@Override
public void setParameter(PreparedStatement ps, int i, Object obj, JdbcType type) throws SQLException {
// TODO Auto-generated method stub
ps.setString(i,(String)obj);
}
}

- MyBatis는 타입을 판단하기 위해 데이터베이스의 메타데이터를 보지 않는다. 그래서 파라미터와 결과에 정확한 타입핸들러를 매핑해야 한다.

# objectFactory

- 결과객체의 인스턴스를 만들기 위해 사용한다.

# plugins

- MyBatis는 매핑 구문을 실행하는 어느 시점에 호출을 가로챈다. 기본적으로 MyBatis는 메소드 호출을 가로채기 위한 플러그인을 허용한다.

설정파일 오버라이드하기 

플러그인을 사용해서 MyBatis핵심 행위를 변경하기 위해, Configuration 클래스 전체를 오버라이드 할 수 있다. 이 클래스를 확장하고 내부메소드를 오버라이드 하고, sqlSessionFactoryBuilder.build(myConfig) 메소드에 그 객체를 넣어주면 된다. 이 작업은 MyBatis에 큰 영향을 줄수 있으니 주의해서 해야한다.

# environments

- 여러개의 환경으로 설정 할 경우 사용
- 중요한 것은 다중환경을 설정할 수 있지만 SqlSessionFactory 인스턴스마다 한개씩만 사용할 수 있다는 것
=> 데이터베이스별로 하나의 SqlSessionFactory

<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 > 

* transactionManager
  • JDBC - 이 설정은 간단하게 JDBC 커밋과 롤백을 처리하기 위해 사용된다. 트랜젝션의 스코프를 관리하기 위해 dataSource로 부터 커넥션을 가져온다.

  • MANAGED - 이 설정은 어떤 것도 하지 않는다. 대신 컨테이너가 트랜젝션의 모든 생명주기를 관리한다.

* dataSource

  • UNPOOLED - 매번 요청에 대해 커넥션을 열고 닫는 간단한 DataSource이다.
  • POOLED - 폴링이 적용된 JDBC 커넥션을 위한 구현체이다. Connection 인스턴스를 생성하기 위해 매번 초기화하는 것을 피하게 해준다
  • JNDI - 컨테이너에 따라 설정이 변경되며, JNDI컨텍스트를 참조한다.


[ MyBatis3 ] 매퍼설정 XML -1(Properties, Setting, typeAliases)

- MyBatis XML 설정파일은 다양한 Setting과 Properties를 가진다.

# Properties

- 외부로 옮길 수 있으며 자바프로퍼티 파일 인스턴스에 설정이 가능하고 properties 요소의 하위 요소에 둘수 도 있다.

<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">

<propertyname="driverClassName"value="${jdbc.driverClassName}"/>

<propertyname="url"value="${jdbc.url}"/>

<propertyname="username"value="${jdbc.username}"/>

<propertyname="password"value="${jdbc.password}"/>

</bean>

위 예제에서는 username과 password는 properties 요소의 설정된 값으로 대체될 수 있다. driver와 url속성은 *.properties파일에 포함된 값으로 대체할 수 있다. 이것은 설정에 대한 다양한 옵션을 제공하는 셈이다.

-속성이 한개 이상 존재한다면, MyBatis는 일정한 순서로 로드 한다.

  • properties 요소에 명시된 속성을 가장 먼저 읽는다.
  • properties 요소의 클래스 패스 자원이나 url속성으로부터 로드된 속성을 두번째로 읽는다.
  • 마지막으로 메소드 파라미터로 전달된 속성을 읽는다.

그래서 가장 우선순위가 높은 속성은 메서드의 파라미터로 전달된 값이고 그 다음은 자원및 url속성이고 마지막은 properties요소에 명시된 값이다.

# Setting

- 런타임시 MyBatis의 행위를 조정하기 위한 중요값들이다. 다음표는 셋팅값들의 의미와 디폴드 값을 정리한 것이다.

 

 

# typeAliases

- 타입 별칭은 자바타입에 대한 좀더 짧은 이름이다. 오직 XML설정에서만 사용되며, 타이핑을 줄이기 위해 존재한다.

- 공통의 자바타입에 대해서는 내장된 타입별칭이 있다. 모두 대소문자를 가린다.

 

 

※ 출처 : Mybatis-3-User_Guide.pdf 

MVC

MVC(Model , View, Controller)

Model      
- 실제 일처리하는 것  (Service : 연산, Repository : DB접근)
View      
- 눈에 보이는 화면     
Controller     
- Request / Response

서버 작업 순서

Request --> Controller --> Model --> Controller --> View

안드로이드 개발 환경 구축

안드로이드 개발환경에 필요한것은 다음과 같습니다.

 1. JDK                        http://www.oracle.com/technetwork/java/javase/downloads/index.html

2. 이클립스                http://www.eclipse.org/downloads/

3. 안드로이드 SDK      http://developer.android.com/sdk/index.html

 

위에 필요한 것은 옆의 링크에서 다운받을 수 있습니다.


Java SDK 및 안드로이드 플러그인 설치

1. Java SDK (JDK) 설치

다운받은 JDK를  설치합니다. JDK 설치과정은 생략하겠습니다.


2. 안드로이드 SDK

다운받은 안드로이드 SDK 를 압축을 해제한 후 원하는 곳으로 옮겨줍니다.

 

3. 이클립스 플러그인 설치

이클립스를 실행한 후 다음 경로로 이동합니다.

Help -> Install New Software 로 들어가서 Add를 선택합니다.



Add를 선택한 후 나오는 창에 이름은 임의로 넣고 Location에 다음 주소를 입력합니다.

     http://dl-ssl.google.com/android/eclipse

 


다음과 같이 목록이 나오면 선택을 한 후 계속 Next 를 눌러줍니다.



위와 같은 창이 뜨면 위와 같이 선택한 후 finish를 선택하면 설치가 종료 됩니다.

설치가 종료되면 이클립스가 재시작 하게 됩니다.

 

안드로이드 SDK 설정 및 ADB 설치

1. 안드로이드 SDK 설정 

 이클립스를 재시작 하게 되면 아래와 같은 창이 나옵니다. 아래창에서 아래와 같이 SDK가 있는 경로를   지정한후 Next를 눌러줍니다.



계속 Next를 선택하면 아래와 같은 화면이 나옵니다.

아래와 같은 화면이 나오면 필요한 버전의 ADB를 설치합니다.



설치가 끝나면 안드로이드 환경 구축이 끝이 납니다.


2. ADB 설치

 다음 순서로 누르고 들어가면 아래의 창이 나옵니다. 아래에서 ADB를 생성합니다.

이것으로 안드로이드 개발환경 구축이 끝이 납니다.