[align=left]<?xmlversion="1.0"encoding="utf-8"?>[/align]
[align=left]<sqlMapnamespace="ItemList"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"[/align] [align=left] xsi:noNamespaceSchemaLocation="SqlMap.xsd">[/align] [align=left] <alias><!-- alias:取别名[/align] [align=left] assembly:表示类所在的文件[/align] [align=left] type:表示该类的完整的名称[/align] [align=left] -->[/align] [align=left] <typeAliasalias="ItemList"assembly="TouPiao.dll"type="TouPiao.DataAccess.ItemList"/>[/align] [align=left] <typeAliasalias="XiangMuBiao"assembly="TouPiao.dll"type="TouPiao.DataAccess.XiangMuBiao"/>[/align] [align=left] </alias>[/align] [align=left] <!--[/align] [align=left] resultMaps:[/align] [align=left] resultMaps用于返回值时进行ORM[/align] [align=left] [/align] [align=left] resultMap:[/align] [align=left] 其中每个resultMap对应一个ORM[/align] [align=left] id:表示名称[/align] [align=left] class:表示对应的类的别名根据<alias>标签中的定义[/align] [align=left] [/align] [align=left] result:[/align] [align=left] property表示类中的属性[/align] [align=left] column表示数据库中对应的字段[/align] [align=left] [/align] [align=left] -->[/align] [align=left] <resultMaps>[/align] [align=left] <resultMapid="ItemResult"class="ItemList">[/align] [align=left] <resultproperty="ID"column="ID"/>[/align] [align=left] <resultproperty="ItemText"column="ItemText"nullValue="没有选项"/>[/align] [align=left] <resultproperty="pID"column="pID"/>[/align] [align=left] <resultproperty="tCount"column="tCount"nullValue="-1"/>[/align] [align=left] </resultMap>[/align] [align=left] </resultMaps>[/align] [align=left] [/align] [align=left] <!--[/align] [align=left] parameterMap:[/align] [align=left] id:表示名称,不能少[/align] [align=left] 其他的参数可以不写,例如 class[/align] [align=left] parameter:[/align] [align=left] property:表示类中的属性,不能少,并且应用在存储过程中的时候,必须按照参数的位置[/align] [align=left] 其他参数可以省略:[/align] [align=left] column:数据库中的字段[/align] [align=left] direction:参数的传递方式 Input|Output|InputOutput[/align] [align=left] dbType:数据库中的字段的类型[/align] [align=left] type:类的属性的类型,可能要写成CLR形式,例如int类型应该写成System.Int32[/align] [align=left] nullValue:空值转换,将空值转换成指定的值,以便防止某些类型不支持NULL的类型出错,例如int double等,注意:[/align] [align=left] 1.只能转换成与property类型相一致的值[/align] [align=left] 2.空不代表"",而是NULL[/align] [align=left] 3.当该属性的类型匹配一个代替空值的值的时候(例如:-9999),更新字段的时候,空值将代替这个值被写入数据库,即nullValue指定的值不被写入数据库[/align] [align=left] size:数据库中字段的大小,设置字段中的数据的最大值[/align] [align=left] precision:数据库中字段的精度,设置当该字段映射到类的对应的属性时的精度[/align] [align=left] [/align] [align=left] -->[/align] [align=left] <parameterMaps>[/align] [align=left] <parameterMapid="AddNewItemParam"><!--AddNewItem的参数列表-->[/align] [align=left] <parameterproperty="ItemText"/>[/align] [align=left] <patameterproperty="pID"/>[/align] [align=left] </parameterMap>[/align] [align=left] <!--DelItem参数列表 -->[/align] [align=left] <parameterMapid="DelItemMap">[/align] [align=left] <parameterproperty="value"/>[/align] [align=left] </parameterMap>[/align] [align=left] [/align] [align=left] <parameterMapid="UpdateItemMap">[/align] [align=left] <parameterproperty="ID"column="ID"/>[/align] [align=left] <parameterproperty="ItemText"column="ItemText"/>[/align] [align=left] <parameterproperty="tCount"column="tCount"/>[/align] [align=left] </parameterMap>[/align] [align=left] [/align] [align=left] <parameterMapid="AddItemCountMap">[/align] [align=left] <parameterproperty="value"/>[/align] [align=left] </parameterMap>[/align] [align=left] [/align] [align=left] <patameterMapid="AddNewXiangMuMap">[/align] [align=left] <parameterproperty="Title"/>[/align] [align=left] <patameterproperty="IsMul"/>[/align] [align=left] </patameterMap>[/align] [align=left] </parameterMaps>[/align] [align=left] [/align] [align=left] <!--[/align] [align=left] statements:语句的集合[/align] [align=left] <statement>标签可以替代<select>,<procedure> ,<delete>,<update>,<insert>,并且可以通过SqlMapper的delete update insert方法以及所有关于查询的方法执行[/align] [align=left] <select>:可以通过SqlMapper的所有关于查询的方法执行[/align] [align=left] <delete> <insert> <update>:可以通过SqlMapper的 delete update insert方法执行[/align] [align=left] [/align] [align=left] <delete> <insert> <update> <statement> <select> <procedure>:[/align] [align=left] id:该语句的标识[/align] [align=left] resultMap:只有<select> <statement>才有,用于将结果映射到相应的字段,该属性不能少[/align] [align=left] parameterMap:用于<procedure>的时候不能缺少,并且对应的parameterMap的<parameter>的property的顺序必须和存储过程的参数的顺序一致[/align] [align=left] parameterClass:可以省略,将使用调用时传进来的类型进行调用[/align] [align=left] 注意:[/align] [align=left] <select id="GetItemsByID" resultMap="ItemResult">[/align] [align=left] select * from ItemList where pID=#ID#[/align] [align=left] </select>[/align] [align=left] 当调用时使用[/align] [align=left] [/align] [align=left] sqlMapper.QueryForList("GetItemByID",1) //这时候#ID#的直就是1[/align] [align=left] [/align] [align=left] sqlMapper.QueryForList("GetItemByUD",ItemClass) //假设ItemClass包含一个ID字段,和name字段,那么这时候#ID#的值就是ItemClass.ID的值[/align] [align=left] [/align] [align=left] -->[/align] [align=left] <statements>[/align] [align=left] <!-- 使用Sql语句,通过项目ID获得该项目的所有选项[/align] [align=left] 注意:[/align] [align=left] 该标签没有指定parameterMap或者parameterClass,将根据前台调用时指定的对象作为参数,如果前台传进来的是一个原始对象例如:int string 等那么#ID#就是[/align] [align=left] 该参数的值[/align] [align=left] 如果传进来的是一个类的对象,假设该类包含两个属性(name,ID)[/align] [align=left] 那么#ID#就代表该对象的ID属性,由于name属性没有被用到,因此被忽略[/align] [align=left] 如果需要传进两个参数(不是某个对象的属性),那么必须将包含这两个键值的Hashtable对象作为参数传进来[/align] [align=left] -->[/align] [align=left] <selectid="GetItemsByID" resultMap="ItemResult">[/align] [align=left] select * from ItemList where pID=#ID#[/align] [align=left] </select>[/align] [align=left] <selectid="GetItemsByIDAndDate" resultMap="ItemResult">[/align] [align=left] select * from ItemList where pID=#ID# and isvis=#ISVIS#[/align] [align=left] </select>[/align] [align=left] [/align] [align=left] <!--调用一个存储过程,增加一个选项 存储过程必须指定 parameterMap,如果有返回值的话必须指定 resultMap-->[/align] [align=left] <procedureid="AddNewItem"parameterMap="AddNewItemParam">[/align] [align=left] AddNewItem[/align] [align=left] </procedure>[/align] [align=left] [/align] [align=left] <!--调用一个存储过程,删除一个选项 -->[/align] [align=left] <procedureid="DelItem"parameterMap="DelItemMap">[/align] [align=left] DelItem[/align] [align=left] </procedure>[/align] [align=left] <!--调用一个存储过程,更新一个选项 -->[/align] [align=left] <procedureid="UpdateItem"parameterMap="UpdateItemMap">[/align] [align=left] UpdateItem[/align] [align=left] </procedure>[/align] [align=left] <!--调用一个存储过程,更新一个选项的值 -->[/align] [align=left] <procedureid="AddItemCount"parameterMap="AddItemCountMap">[/align] [align=left] AddItemCount[/align] [align=left] </procedure>[/align] [align=left] </statements>[/align] [align=left]</sqlMap>[/align]
|
|
[align=left] //这个类调用IBatis来存取数据 using System;[/align] [align=left]using TouPiao.DataAccess;[/align] [align=left]using TouPiao;[/align] [align=left]using System.Collections;[/align] [align=left]using IBatisNet.DataMapper;[/align] [align=left]using IBatisNet.DataMapper.Configuration;[/align] [align=left]namespace TouPiao.Model[/align] [align=left]{[/align] [align=left] ///<summary>[/align] [align=left] ///投票类[/align] [align=left] ///</summary>[/align] [align=left] public class TouPiaoClass[/align] [align=left] {[/align] [align=left] [/align] [align=left] SqlMapper sm=null;[/align] [align=left] public TouPiaoClass()[/align] [align=left] {[/align] [align=left] sm=new GetSqlMapper().GetMapper();[/align] [align=left] } [/align] [align=left] public IList GetItemsByID(int ID){[/align] [align=left] [/align] [align=left] return sm.QueryForList("GetItemsByID",ID);[/align] [align=left] }[/align] [align=left] ///<summary>[/align] [align=left] ///增加一个新的选项[/align] [align=left] ///</summary>[/align] [align=left] ///<param name="pID">所属项目ID</param>[/align] [align=left] ///<param name="ItemText">选项文本</param>[/align] [align=left] public void AddNewItem(int pID,string ItemText)[/align] [align=left] {[/align] [align=left] ItemList il=new ItemList();[/align] [align=left] il.pID=pID;[/align] [align=left] il.ItemText=ItemText;[/align] [align=left] sm.Insert("AddNewItem",il);[/align] [align=left] }[/align] [align=left] ///<summary>[/align] [align=left] ///删除一个选项[/align] [align=left] ///</summary>[/align] [align=left] ///<param name="ID">选项ID</param>[/align] [align=left] public void DelItem(int ID){[/align] [align=left] sm.Delete("DelItem",ID);[/align] [align=left] }[/align] [align=left] ///<summary>[/align] [align=left] ///更新一个选项[/align] [align=left] ///</summary>[/align] [align=left] ///<param name="ID">选项ID</param>[/align] [align=left] ///<param name="ItemText">选项文本</param>[/align] [align=left] ///<param name="tCount">选项计数</param>[/align] [align=left] public void UpdateItem(int ID,string ItemText,int tCount){[/align] [align=left] ItemList il=new ItemList();[/align] [align=left] il.ID=ID;[/align] [align=left] il.ItemText=ItemText; [/align] [align=left] il.tCount=tCount;[/align] [align=left] sm.Update("UpdateItem",il);[/align] [align=left] }[/align] [align=left] ///<summary>[/align] [align=left] ///将指定的选项的计数加1[/align] [align=left] ///</summary>[/align] [align=left] ///<param name="al">选中的选项列表</param>[/align] [align=left] public void AddItemCount(string al){[/align] [align=left] sm.Update("AddItemCount",al.Trim(','));[/align] }
|
|