1.先扩展一个参数实体:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyDemo.com.Model
{
public class ParameterClassEx
{
public string field1 { get; set; }
public string[] ArrValue { get; set; }
}
}2.IBatis配置文件参数文件编写 <typeAlias alias="ParameterClassEx" type="MyDemo.com.Model.ParameterClassEx,MyDemo.com.Model"/>3.IBatis配置文件操作文件编写<!--删除我的购物车(主表)-->
<delete id="DeleteShopCartByIDs" parameterClass="ParameterClassEx">
<![CDATA[Delete From Shop_ShoppingCart Where UserID=#field1# and ShopCartID in ]]>
<iterate open="(" close=")" conjunction="," property="ArrValue" >
#ArrValue[]#
</iterate>
</delete>
<!--删除我的购物车(明细)-->
<delete id="DeleteShopCartPaperDetailByIDs" parameterClass="ParameterClassEx">
<![CDATA[Delete From Shop_ShoppingCartPaperDetail Where ShopCartID in ]]>
<iterate open="(" close=")" conjunction="," property="ArrValue" >
#ArrValue[]#
</iterate>
</delete>
4.业务逻辑层C#:
public string DeleteShoppingCarts(ParameterClassEx shopCartIDs)
{
string resultMsg = "";
ISqlMapper iSqlMapper = Mapper.Instance();
if (iSqlMapper != null)
{
iSqlMapper.BeginTransaction();
try
{
iSqlMapper.Delete("DeleteShopCartByIDs", shopCartIDs);
iSqlMapper.Delete("DeleteShopCartPaperDetailByIDs", shopCartIDs);
iSqlMapper.CommitTransaction();
resultMsg = "删除购物车成功!";
}
catch (Exception exp)
{
resultMsg = exp.ToString();
iSqlMapper.RollBackTransaction();
}
}
return resultMsg;
}
本文介绍如何使用IBatis.NET通过自定义参数类实现批量删除购物车及其明细记录的功能。具体包括参数实体类的设计、配置文件中参数类型的映射、SQL语句中参数的引用方式及业务逻辑层的具体实现。
3万+

被折叠的 条评论
为什么被折叠?



