zoukankan      html  css  js  c++  java
  • 关于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>

  • 相关阅读:
    probuf了解
    rebbitmq-RPC(C#)
    获取指定数量的有序列表
    RPC(Remote Procedure Call Protocol)
    正则表达式(c#)
    02_python函数
    01_python基础
    养生茶
    测试左右移浅淡
    python类的组合
  • 原文地址:https://www.cnblogs.com/jilodream/p/4219895.html
Copyright © 2011-2022 走看看