SQL記述xml

書式

<sqlMap namespace="SQLMAP用のXMLの任意の値">
 
    別名定義(クラス等の別名を設定
    <typeAlias alias="別名" type="データ型(クラス)" />
 
    抽出情報設定(select)
    <select id="任意のID" resultClass="データ型">
        SQLステートメント
        select
            id
          , name
        from
            test1
        order by
            id
    </select>
 
    ステートメント設定(select、insert、update、delete)
    <statement id="任意のID" parameterClass="パラメータのデータ型(クラス含む)" resultClass="返却用のデータ型(クラス含む)">
        select
            count(*)
 
        from
            test2
 
    </statement>
 
</sqlMap>
 
 

SQLを記述したxml定義

dao/sqlmap/Test1.xml
<?xml version="1.0" encoding="Shift_JIS" standalone="no"?>
<!DOCTYPE sqlMap
    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-2.dtd"
>
 
<sqlMap namespace="Test1">
 
    <typeAlias alias="test1" type="model.Test1" />
 
    <select id="getTest1List" resultClass="test1">
        select
            id
          , name
        from
            test1
        order by
            id
    </select>
 
</sqlMap>
 
dao/sqlmap/Test2.xml
<?xml version="1.0" encoding="Shift_JIS" standalone="no"?>
<!DOCTYPE sqlMap
    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-2.dtd"
>
 
<sqlMap namespace="Test2">
 
    <typeAlias alias="test2" type="model.Test2" />
 
    <!-- resultMap -->
    <resultMap id="reserve-result" class="reserve">
        <result property="reserveId" column="reserve_id" />
        <result property="person" column="reserve_person" />
        <result property="content" column="content" />
        <result property="date" column="rDay" />
        <result property="start" column="start" />
        <result property="end" column="end" />
        <result property="room.roomId" column="room_id" />
        <result property="room.roomNo" column="room_no" />
        <result property="room.buildingId" column="room_buildingId" />
    </resultMap>
 
    <statement id="getReservation" parameterClass="int" resultMap="reserve-result">
        select
            reserve_id
          , reserve_person
          , reserve.roomid as room_id
          , room.roomno as room_no
          , rDay
          , start
          , end
          , content
          , room.buildingid as room_buildingId
 
        from
            test1, test2
 
        where
            reserve.reserve_id = #value#
            and reserve.roomid = room.roomId
 
    </statement>
 
    <statement id="CheckCnt" parameterClass="reserve" resultClass="int">
        select
            count(*)
 
        from
            test2
 
    </statement>
 
    <statement id="getReservationsForDate" parameterClass="java.util.Map" resultMap="reserve-result">
        select
            reserve_id
          , reserve_person
          , reserve.roomid as room_id
          , room.roomno as room_no
          , rDay
          , start
          , end
          , content
          , room.buildingid as room_buildingId
 
        from
            reserve, room
 
        where
            reserve.roomid = #roomid#
            and reserve.rDay = '2010-08-27'
            and reserve.roomid = room.roomId
 
    </statement>
 
    <statement id="insertReservation" parameterClass="reserve" resultClass="int">
        insert into reserve(
            reserve_person
          , roomid
          , rDay
          , start
          , end
          , content) values(
            #person#
          , #room.roomId#
          , #date#
          , #start#
          , #end#
          , #content#)
 
    </statement>
 
    <statement id="updateReservation" parameterClass="reserve" resultClass="int">
        update
            reserve
 
        set
            reserve_person = #person#
          , rDay = #date#
          , start = #start#
          , end = #end#
          , content = #content#
 
        where
            reserve_id = #reserveId#
 
    </statement>
 
    <statement id="deleteReservation" parameterClass="int" resultClass="int">
        delete from
            reserve
        where
            reserve_id = #value#
 
    </statement>
 
</sqlMap>
 
 



最終更新:2010年08月31日 16:00