查看文章
 
Ibatis.net关于数据库大字段的操作
2009-05-25 17:55

访问大字段是一件不可避免的事情,文档,图片等等。

ibatis.net操作大字段,如果该字段不为空,插入值是是正常的。当该条记录的大字段为空值时,就会报“给byte[]赋空值会提示:操作数类型冲突: nvarchar 与 image 不兼容 如何给空值插入到image字段”的错误。那么这个时候就要调整一下map了。

之前的map的insert是这样写的:

    <insert id="InsertBIDAttachmentFile" parameterClass="BIDAttachmentFile">
      INSERT INTO [dbo].[BID_AttachmentFile] (
      [AttachmentID]
      , [AttachmentName]
      , [Description]
      , [AttachmentFileContent]
      ) VALUES (
    #AttachmentID#
      , #AttachmentName#
      , #Description#
      , #AttachmentFileContent#)
    </insert>

这里不能将参数以类的(parameterClass="BIDAttachmentFile")形式传入,而是要单独写一个parameterMaps来传参数,并且将Insert的value全部改成“?”符号。修改的map为:
<parameterMaps>
    <parameterMap id="insertBIDAttachmentFile" class="BIDAttachmentFile">
      <parameter property="AttachmentID" column="AttachmentID" dbType="VarChar" />
      <parameter property="AttachmentName" column="AttachmentName" dbType="NVarChar" />
      <parameter property="Description" column="Description" dbType="NVarChar" />
      <parameter property="AttachmentFileContent" column="AttachmentFileContent" dbType="Image" />
    </parameterMap>

    <insert id="InsertBIDAttachmentFile" parameterMap="insertBIDAttachmentFile">
      INSERT INTO [dbo].[BID_AttachmentFile] (
      [AttachmentID]
      , [AttachmentName]
      , [Description]
      , [AttachmentFileContent]
      ) VALUES (
      ?,?,?,?
      )  
    </insert>


类别:ibatis.net||添加到搜藏 |分享到i贴吧|浏览(464)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu