关于mybatis 在C#.Net中批量增,删,改

 

发现很久没有更新空间里的日志了,有时候实在忙没有时间记录,有时候又觉得自己整理的不够清晰,还是缓缓在记录吧。

下面直接进入正题

 

对于急需方法的阅读者  可以直接转至代码以下忽略

 

对于数据库进行操作的类型一般来说有四种:增删改查。

四种操作中只有查,是不会更改原有数据信息的情况下的操作。而查也往往是,Erp 或应用软件操作次数最多,数据量最大的一种操作。

对于查的优化,我会在以后的文章中提到,现在先不讨论。

对于增,删,改的操作,现在经常出现的问题就是如何根据主键批量删除或新增数据。

往往由于批量操作。大量的连接和释放数据库操作,造成性能浪费。下边就讲解以下  我们在项目中是如何解决这个问题的(此处感谢汪涛的贡献)

删除  

<deleteid="DeleteMulti"parameterClass="ArrayList">

     DELETE FROM [Area]

     WHERE [SysNo] IN

      <iterateopen="(" close=")" conjunction=",">

        #[]#

      </iterate>

</delete>

更新

ps  现在  批量更新 只能解决   更新相同的内容  不能各自取值,这个问题我们也没解决 ,如果你有好办法那么轻留言

 

    <updateid="UpdateMulti" parameterClass="System.Collections.IDictionary">

     UPDATE [TaskDetail]

     SET [Status]=#InvalidStatus#,[ModifyUserID] = #ModifyUserID#,[ModifyUserName] = #ModifyUserName#,[RowModifyDate]=GETDATE()

     WHERE [SysNo] IN

      <iterateproperty="ListTaskDetailSysNo" open="(" close=")" conjunction=",">

        #ListTaskDetailSysNo[]#

      </iterate>

 

插入(迭代values

<insertid="InsertMulti"parameterClass="ArrayList">

     <![CDATA[

        INSERT INTO [CartonDetail] (

        [SysNo]

     ,[CartonSysNo]

     ,[CartonCode]

     ,[CartonLineNo]

     ,[PickSysNo]

     ,[SKUDesc]

     ,[SKUCode]

     ,[QtyPacked]

     ,[Price]

     ,[CreateUserID]

     ,[CreateUserName]

     ,[ModifyUserID]

     ,[ModifyUserName]) VALUES

     ]]>

      <iterateconjunction="," open=""close="">

       <![CDATA[

          (#[].SysNo#,

          #[].CartonSysNo#,

           #[].CartonCode#,

           #[].CartonLineNo#,

           #[].PickSysNo#,

           #[].SKUDesc#,

           #[].SKUCode#,

           #[].QtyPacked#,

           #[].Price#,

           #[].CreateUserID#,

           #[].CreateUserName#,

           #[].CreateUserID#,

           #[].CreateUserName#)

        ]]>

      </iterate>

    </insert>

 

posted @   王若伊_恩赐解脱  阅读(1882)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)

点击右上角即可分享
微信分享提示