ibatis学习笔记(三)——ibatis映射文件

<?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>

 <statement id="statementName"
        [parameterClass="some.class.Name"] //表示输入的参数类型为Class
        [resultClass="some.class.Name"] //表示输出的参数类型为Class
        [parameterMap="nameOfParameterMap"] //表示输入的参数类型为Map
        [resultMap="nameOfResultMap"] //表示输出的参数类型为Class
        [cacheModel="nameOfCache"]
        >
        select * from t_user where sex = [?|#propertyName#]
        order by [$simpleDynamic$]
    </statement>
1、对于参数定义,尽量使用parameterClass,即直接将pojo作为statement的调用参数,如果输入的参数是java.util.map,那么map中的键值将作为输入参数,普通基本类型就是直接输入。
2、对于返回结果而言,尽量也使用resultClass,直接将字段名与pojo相对应。
3、而parameterMap与resultMap实现了pojo到数据库字段的映射配置,parameterMap 使用较少,而resultMap 则大多用于嵌套查询以及存储过程的

<resultMap id="get_user_result" class="user">
<result property="name" column="xingming"
jdbcType="VARCHAR" javaType="java.lang.String"/>
<result property="sex" column="xingbie"
jdbcType="int" javaType="java.lang.Integer"/>
<result property="id" column="id"
jdbcType="int" javaType="java.lang.Integer"/>
</resultMap>
<parameterMap id="update_user_para" class="redemption" >
<parameter property="name"
jdbcType="VARCHAR"
javaType="java.lang.String"
nullValue=""
/>
<parameter property="sex"
jdbcType="int"
javaType="java.lang.Integer"
nullValue=""
/>
</parameterMap>
<procedure id="getUserList"
resultMap="get_user_result"
>
{call sp_getUserList()}
</procedure>
<procedure id="doUserUpdate"
parameterMap="update_user_para"
>
{call sp_doUserUpdate(#id#,#name#,#sex#)}
</procedure>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值