<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
<!-- 定義該映射文件的Cache機制 -->
<cacheModel type="LRU" id="userCache">
<!-- 設定緩存存活的時間 -->
<flushInterval hours="24"/>
<!-- 設定指定的操作,清空緩存 -->
<flushOnExecute statement="updateUser"/>
<!-- 設定緩存的容量(對象) -->
<property name="size" value="1000"/>
</cacheModel>
<!-- 定義別名 -->
<typeAlias alias="user" type="com.wyq.pojo.User"/>
<!-- 通過緩存可以提高查詢效率 -->
<select id="getUsers"
parameterClass="java.lang.Integer"
resultClass="user" cacheModel="userCache">
<!-- 采用!【DATA[]】格式,是為了避免sql重的字符與xml映射文件的合法性造成影響 -->
<![CDATA[
select id,name,sex from t_user
]]>
</select>
<update id="updateUser" parameterClass="user">
<![CDATA[
update t_user set name=#name#,sex=#sex# where id=#id#
]]>
</update>
<insert id="insertUser" parameterClass="user">
insert into t_user(name,sex) values(#name#,#sex#)
</insert>
<delete id="deleteUser" parameterClass="java.lang.String">
delete from t_user where id=#value#
</delete>
</sqlMap>
注意點:
1 --
對於參數定義,盡量使用parameterClass,即直接將pojo作為statement的調用參數,如果輸入的參數是java.util.map,那么map中的鍵值將作為輸入參數,普通基本類型就是直接輸入
2--
對於返回結果而言,盡量也使用resultClass,直接將字段名與pojo相對應(??????)
3--
而parameterMap與resultMap實現了pojo到數據庫字段的映射配置,parameterMap 使用較少,而resultMap 則大多用於嵌套查詢以及存儲過程的