[Database/ibatis] iBatis – Basic Meta Data


mybatis-config.xml

핵심 MetaData.

properties 관리 : 애플리케이션에 배포 할 때, 

                   공통적인 부분이나 환경별 다른 값들은 Properties

                       독립적으로 관리

                       대개 DBMS에 접속하는 정보를 작성한다.

ClassName 관리 : FQCN(Full Qualified Class Name) 을 별칭(Alias)으로 관리

기타 설정 : 트랜잭션처리, 커넥션풀 설정, SQL 등 여러 환경설정을 등록,설정한다.



UserMapper.xml

SQL 를 갖는 MetaData

MyBatis Framework는 XML MetaData 를 사용하여 SQL구문을 관리한다.

(SQLxml 을 통해 캡슐화 되어 애플리케이션 외부로 분리함)


namespace 이용하여 Application 에서 하위의 SQL 을 참조한다.  

Query를 수행 후 resultType에 선언된 해당 VO의 Field에 Binding한다.

Query Alias, VO Field의 이름이 동일한 것 확인한다.




MyBatis Framework 의 이해

 - SQL, Connection, Transaction을 Meta Data Encapsulation 하였으며,

   (mybatis-config.xml / UserMapper.xml)

   Query의 수행 결과를 VO에 바인딩한다.

   (JDBC API를 사용하여 반복적으로 수행 하는 것을 한 줄로 표현한 것이다.)


List<User> list = sqlSession.selectList("UserMapper.getUserList");


 - MyBatis Framework 의 장점

    단순하다 (다른 라이브러리와 의존적 관계가 없다. )

    SQL 과 VO를 바인딩한다.

    생산성 / 성능 / 작업의 분배 (소스코드와 SQL 의 분리)

    관심사의 분리

       (DBMS 에 독립적인 API제공 및 

        JDBC API가 아닌 비지니스 객체만 가지고 작업)       

결론 : MyBatis Framework 는 JDBC 절차를 간결화, 추상화, 캡슐화한 library다.



   

'Database > ibatis' 카테고리의 다른 글

[Database/ibatis] iBatis – Basic Meta Data  (0) 2016.11.06
[Database/ibatis] Only JDBC  (0) 2016.11.06
[Database/ibatis] 일괄처리  (0) 2016.08.24

[Database/ibatis] Only JDBC


'Database > ibatis' 카테고리의 다른 글

[Database/ibatis] iBatis – Basic Meta Data  (0) 2016.11.06
[Database/ibatis] Only JDBC  (0) 2016.11.06
[Database/ibatis] 일괄처리  (0) 2016.08.24

[Database/ibatis] 일괄처리


대량의 데이터에 대하여 insert와 update의 속도를 높히는 목적으로 사용한다.

일괄처리하는 작업도중 delete method와 같은 중간의 결과를 알 수 없음.

수많은 데이터를 작업하게 되면 메모리에 부담이 있음.


startBatch()

https://ibatis.apache.org/docs/java/user/com/ibatis/sqlmap/client/SqlMapExecutor.html#startBatch()


executeBatch()

https://ibatis.apache.org/docs/java/user/com/ibatis/sqlmap/client/SqlMapExecutor.html#executeBatch()


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
try {
    tgtsqlMap.startTransaction();
    tgtsqlMap.startBatch();
 
    tgtsqlMap.delete("관련된 SQL문""매개변수");
    
    for (int i = 0; i < "insert 할만큼의 작업 수"; i++) {
        tgtsqlMap.insert("관련된 SQL문""집어넣을 VO");
    }                    
    
    tgtsqlMap.executeBatch();
    tgtsqlMap.commitTransaction();
    
catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    System.out.println("\nDB Exception appeared. all ongoing datas were rollbacked");
}finally {
    try {
        tgtsqlMap.endTransaction();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
 
cs


'Database > ibatis' 카테고리의 다른 글

[Database/ibatis] iBatis – Basic Meta Data  (0) 2016.11.06
[Database/ibatis] Only JDBC  (0) 2016.11.06
[Database/ibatis] 일괄처리  (0) 2016.08.24

+ Recent posts

티스토리 툴바