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>

  • 相关阅读:
    解决:Could not resolve archetype org.apache.maven.archetypes
    Spring MVC配置MyBatis输出SQL
    Spring集成MyBatis 通用Mapper以及 pagehelper分页插件
    关于SpringMVC或Struts2接受参数接收不到的原因
    配置quartz启动时就执行一次
    ajaxFileUpload进行文件上传时,总是进入error
    spring mvc注入配置文件里的属性
    java中将一个文件夹下所有的文件压缩成一个文件
    flume failed to start agent because dependencies were not found in classpath
    ubuntu不能安装pip unable to install pip in unbuntu
  • 原文地址:https://www.cnblogs.com/jilodream/p/4219895.html
Copyright © 2011-2022 走看看