Ibatis メモ
特徴
・接続、切断処理、プリペアドステートメントを書かなくてよい。
・SQL文は外出。
・内部でのコネクションプーリング。
・結果や条件のセットをBeanやMap、Listでまとめて設定。バインドが楽。
・動的なSQL文を設定できる。
1.DBとの接続情報を保持するxmlファイルを作成する(sqlMapConfig.xml)。
sqlを定義するsqlMap.xmへの参照を定義する。
(このファイルは定義すればいくつでも)
以下
<?xml version=”1.0″ encoding=”UTF-8″ ?>
<!DOCTYPE sqlMapConfig
PUBLIC “-//ibatis.apache.org//DTD SQL Map Config 2.0//EN”
“http://ibatis.apache.org/dtd/sql-map-config-2.dtd“>
<sqlMapConfig>
<transactionManager type=”JDBC”>
<dataSource type=”SIMPLE”>
<property name=”JDBC.Driver”
value=”com.mysql.jdbc.Driver”/>
<property name=”JDBC.ConnectionURL”
value=”jdbc:mysql://localhost:3306/study”/>
<property name=”JDBC.Username” value=”user”/>
<property name=”JDBC.Password” value=”user”/>
</dataSource>
</transactionManager>
<!– sqlファイルを定義 –>
<sqlMap resource=”book/bookSqlMap.xml”/>
</sqlMapConfig>
2.sqlを記述するxmlファイルを用意する
sqlMap.xmなど
<?xml version=”1.0″ encoding=”UTF-8″ ?>
<!DOCTYPE sqlMap
PUBLIC “-//ibatis.apache.org//DTD SQL Map 2.0//EN”
“http://ibatis.apache.org/dtd/sql-map-2.dtd“>
<sqlMap>
<!– Beanの情報を定義する –>
<!– テーブルのカラムとBeanの属性をマッピングする –>
<resultMap id=”bookBeanInfo” class=”db.ibatis.domain.Book”>
<result property=”bookId” column=”book_id” />
<result property=”bookName” column=”book_name” />
<result property=”campanyId” column=”company_id” />
<result property=”price” column=”price” />
</resultMap>
<!–キーによるセレクトを行いMAPにつめる –>
<select id=”selBookByPkToMap”
parameterClass=”java.lang.Integer”
resultClass=”java.util.HashMap”>
select book_id,book_name,price,company_id
from book where book_id = #value#
</select>
<!–キーによるセレクトを行い上記で定義したBean詰める –>
<select id=”selBookByPkToBean”
parameterClass=”java.lang.Integer”
resultMap=”bookBeanInfo”>
select book_id,book_name,price,company_id
from book where book_id = #value#
</select>
<!–キーによるセレクトを行いBeanの属性をエイリアスに設定することで、Bean定義を省く –>
<select id=”selBookByPk2ToBeanNotDefine”
parameterClass=”java.lang.Integer”
resultClass=”db.ibatis.domain.Book”>
select
book_id as bookId
,book_name as bookName
,price as price
,company_id as companyId
from book where book_id = #value#
</select>
<!–リストに詰める –>
<select id=”selBookToList”
parameterClass=”java.lang.Integer”
resultMap=”bookBeanInfo”>
select book_id,book_name,price,company_id
from book
where price > #value#
</select>
<!–更新処理 –>
<update id=”updateBook”
parameterClass=”db.ibatis.domain.Book”>
update book set
book_name = #bookName#
,price = #price#
where
book_id = #bookId#
</update>
</sqlMap>