본문 바로가기

Java/mybatis

마이바티스와 아이바티스 설정 비교

1. DTD 규칙 정의


설절 파일의 DTD

 

@ ibatis

<!DOCTYPE sqlMapConfig
    PUBLIC "-//ibatis.apache.org//DTD SQL Map config 2.0//EN" 
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

 

mybatis

<!DOCTYPE Configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">



매퍼 XML의 DTD
 

@ ibatis

<!DOCTYPE sqlMap
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" 
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

 

mybatis

<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">




2. 설정 파일 변환 규칙


최상위 엘리먼트

 

@ ibatis

<sqlMapConfig>

 

mybatis

<configuration>


 

settings 엘리먼트

 

@ ibatis

<sqlMapConfig>

   <settings x="x" foo="bar" />

   <settings x="y" foo="bar" />

 

mybatis

            <configuration>
                <settings>

                    <settings x="x" foo="bar" />  

                    <settings x="y" foo="bar" />



transactionManager 엘리먼트와 dataSource 엘리먼트

 

@ ibatis

<transactionManager type="JDBC" commit Required="false">

      <dataSource type="madnix.package.CustomDataSourceFactory" />

</transactionManager>

 

mybatis

            <environments default="env">

                  <environment id="env">

                       <transactionManager type="JDBC">

                            <property name="commit Required" value="false" />

                       </transactionManager>

                  </environment>

             </environments>



mapper 설정
 

@ ibatis

<sqlMapConfig>

    <sqlMap resource=... />

                <sqlMap resource=... />

 

mybatis

            <configuration>
                <mappers>

                    <mapper resource=... />  

                </mappers>

 

 

 

3. 매퍼 XML 변환 규칙

 

◆ XML 엘리먼트

 

@ ibatis

<resultMap id="productRM" class="product" groupBy="id">

     <result property="id" column="product_id" />

     <result property="name" column="product_name" />

     <result property="category" column="product_category" />

     <result property="subProducts" resultMap="Products.subProductsRM" />

</resultMap>

 

mybatis

<resultMap id="productRM" type="product">

     <id property="id" column="product " />

     <result property="name" column="product_name " />

     <result property="category" column="product_category " />

     <collection property="subProducts" resultMap="Products.subProductsRM" />

</resultMap>



◆ 중첩 결과 매핑 설정

 

@ ibatis

<resultMap .....>

     <result property="client" resultMap="Client.clientRM" />

      .....

</resultMap>

 

mybatis

<resultMap .....>

     <association property="client" resultMap="Client.clientRM" />

      .....

</resultMap>
 

 

◆ 파라미터 매핑 처리 구문

 

@ ibatis

    parameterMap

 

mybatis

                parameterType

 

 

◆ 인라인 파라미터(파라미터 표기법)

 

@ ibatis

     #value#

 

mybatis

                 #{value}#

 

 

◆ jdbcType(ORACLECURSOR, NUMBER)

 

@ ibatis

    jdbcType="ORACLECURSOR"

    jdbcType="NUMBER"

 

mybatis

          jdbcType="CURSOR"

    jdbcType="NUMERIC"

 

 

◆ 저장 프로시저

 

@ ibatis

<procedure id="getValues" parameterMap="getValuesPM">

     { ? = call xmlExample.getValues(p_id => ?) }

</procedure>

 

mybatis

<select id="getValues" parameterMap="getValuesPM" statementType="CALLABLE">

     { ? = call xmlExample.getValues(p_id => ?) }

</select>

 

 

◆ 캐시

 

@ ibatis

<cacheModel id="myCache" type="LRU">

     <flushInterval hours="24" />

     <property name="size" value="100" />

</cacheModel>

 

mybatis

<cache flushInterval="86400000" eviction="LRU" />

 

 

◆ 동적  SQL

 

@ ibatis

<isNotNull.*?property=\"(.*?)\">

 

mybatis

<if test="$1 != null">

</if>

 

 

 

4. 자바 API

 

◆ SqlMapClient

 

@ ibatis

com.ibatis.sqlmap.client.SqlMapClient

 

mybatis

org.apache.ibatis.session.SqlSessionFactory


 

◆ 사용자 정의 타입 핸들러

 

@ ibatis

com.ibatis.sqlmap.client.extensions.TypeHandlerCallback

 

mybatis

org.apache.ibatis.type.TypeHandler