ibatis学习笔记(3)

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 >

转载于:https://www.cnblogs.com/wyqtomorrow/archive/2007/11/25/971973.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值