关于iBATIS的sqlmap的几点说明

本文介绍了iBATIS SQL映射文件的配置细节,包括如何正确设置日期类型的格式、处理空值以及使用动态SQL来避免错误。同时,还强调了在SQL映射文件中的resultMap与Java对象类型匹配的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?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 namespace="QBXX_YWXT_XCTBB">

    
<resultMap id="ywxtTzbResult"
        class
="com.sclh.servicebase.ywxttzb.bean.YwxtTzb">
        
<!--
            WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
            This element was generated on Thu Sep 21 11:29:11 CST 2006.
        
-->
        
<result column="ZBH" property="zbh" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="FSDW" property="fsdw" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="TZNR" property="tznr" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="FSSJ" property="fssj" jdbcType="DATETIME" />
        
<result column="JSDW" property="jsdw" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="FSDWLXR" property="fsdwlxr" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="FSDWLXDH" property="fsdwlxdh" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="YDBS" property="ydbs" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="QSBS" property="qsbs" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="QSSJ" property="qssj" jdbcType="DATETIME" />
        
<result column="ZXSJ" property="zxsj" jdbcType="DATETIME" />
        
<result column="ZXBS" property="zxbs" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="ZXR" property="zxr" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="ZXYY" property="zxyy" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="BZ" property="bz" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="QSYJ" property="qsyj" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="TZLX" property="tzlx" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="GLBH" property="glbh" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="TZLB" property="tzlb" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="FWCS" property="fwcs" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="QT1" property="qt1" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="QT2" property="qt2" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="TBDW" property="tbdw" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="TBR" property="tbr" jdbcType="VARCHAR"
            nullValue
="" />
        
<result column="TBSJ" property="tbsj" jdbcType="DATETIME" />
        
<result column="XZDS" property="xzds" jdbcType="VARCHAR"
            nullValue
="" />
    
</resultMap>


    
<insert id="insertYwxtTzb"
        parameterClass
="com.sclh.servicebase.ywxttzb.bean.YwxtTzb">
        
<!--
            WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
            This element was generated on Thu Sep 21 11:29:11 CST 2006.
        
-->
        insert into YWXT_TZB ( ZBH, FSDW, TZNR, FSSJ, JSDW, FSDWLXR,
        FSDWLXDH, YDBS, QSBS, QSSJ,ZXSJ, ZXBS, ZXR, ZXYY, BZ, QSYJ,
        TZLX, GLBH, TZLB, FWCS, QT1, QT2, TBDW, TBR, TBSJ, XZDS) values
        ( #zbh:VARCHAR#, #fsdw:VARCHAR#, #tznr:VARCHAR#, #fssj#,
        #jsdw:VARCHAR#, #fsdwlxr:VARCHAR#, #fsdwlxdh:VARCHAR#,
        #ydbs:VARCHAR#, #qsbs:VARCHAR#, #qssj#, #zxsj#, #zxbs:VARCHAR#,
        #zxr:VARCHAR#, #zxyy:VARCHAR#, #bz:VARCHAR#, #qsyj:VARCHAR#,
        #tzlx:VARCHAR#, #glbh:VARCHAR#, #tzlb:VARCHAR#, #fwcs:VARCHAR#,
        #qt1:VARCHAR#, #qt2:VARCHAR#, #tbdw:VARCHAR#, #tbr:VARCHAR#,
        #tbsj#, #xzds:VARCHAR#)
    
</insert>

    
<update id="updateByZbh"
        parameterClass
="com.sclh.servicebase.ywxttzb.bean.YwxtTzb">
        update YWXT_TZB set
        
<dynamic>
            
<isNotEmpty property="fsdw" close=",">
                FSDW = #fsdw:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="tznr" close=",">
                TZNR = #tznr:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotNull property="fssj" close=",">
                FSSJ = #fssj#
            
</isNotNull>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="jsdw" close=",">
                JSDW = #jsdw:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="fsdwlxr" close=",">
                FSDWLXR = #fsdwlxr:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="fsdwlxdh" close=",">
                FSDWLXDH = #fsdwlxdh:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="ydbs" close=",">
                YDBS = #ydbs:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="qsbs" close=",">
                QSBS = #qsbs:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotNull property="fssj" close=",">
                FSSJ = #fssj#
            
</isNotNull>
        
</dynamic>
        
<dynamic>
            
<isNotNull property="qssj" close=",">
                ZXSJ = #qssj#
            
</isNotNull>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="zxbs" close=",">
                ZXBS = #zxbs:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="zxr" close=",">
                ZXR = #zxr:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="zxyy" close=",">
                ZXYY = #zxyy:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="bz" close=",">
                BZ = #bz:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="qsyj" close=",">
                QSYJ = #qsyj:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="tzlx" close=",">
                TZLX = #tzlx:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="glbh" close=",">
                GLBH = #glbh:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="xzds" close=",">
                XZDS = #xzds:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="tzlb" close=",">
                TZLB = #tzlb:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="fwcs" close=",">
                FWCS = #fwcs:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="qt1" close=",">
                QT1 = #qt1:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="qt2" close=",">
                QT2 = #qt2:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="tbdw" close=",">
                TBDW = #tbdw:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotEmpty property="tbr" close=",">
                TBR = #tbr:VARCHAR#
            
</isNotEmpty>
        
</dynamic>
        
<dynamic>
            
<isNotNull property="tbsj" close=",">
                TBSJ = #tbsj#
            
</isNotNull>
        
</dynamic>
        ZBH = #zbh:VARCHAR# where ZBH = #zbh:VARCHAR#

    
</update>

</sqlMap>

1. 在上面的配置文件中主要想说明的是 对于数据库设计DATE类型,如果我们要要求返回带时间的格式时间"yyyy-MM-dd HH:mm:ss" 那么我们的  <result column="TBSJ" property="tbsj" jdbcType="DATETIME" />中"jdbcType"必须为"DATETIME",否则将返回"yyyy-MM-dd" 格式;

2.对于输入参数"  <result column="TBR" property="tbr" jdbcType="VARCHAR"
   nullValue="" />
"我们可以指定"nullValue",当数据库没有值时,可以使用的默认值,但是有时我们不愿意指定默认值,那么我们该怎么班呢?对于 jdbcType="DATE" 不会报错,但是他会返回null,如果引用的客户端没有进行处理,那么很可能报nullpoint的错误;

3.对于输入的"parameterClass",如果为空值,同样会弹出一些错误,解决的方法就是采用动态的参数设置

<dynamic>
       
<isNotEmpty property="tznr" close=",">
                TZNR = #tznr:VARCHAR#
       
</isNotEmpty>
</dynamic>

才可以避免这个问题

4.当我们在 sqlMap的"resultMap"类型与代码里面的转换类型不一致时,他会部报任何错误,而是只有一个返回null的错误,有时很难查找这样的问题,所以,当你感到莫名其妙的时候,请一定回头看看你的类型是否匹配;

转载于:https://www.cnblogs.com/fhway/archive/2006/10/14/2461816.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值