您的位置:首页 > 编程语言 > C#

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

2013-12-16 17:35 302 查看
发现很久没有更新空间里的日志了,有时候实在忙没有时间记录,有时候又觉得自己整理的不够清晰,还是缓缓在记录吧。

下面直接进入正题

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

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

四种操作中只有查,是不会更改原有数据信息的情况下的操作。而查也往往是,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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐