当前位置/ List
DevNet帮助中心 >> SQL-Mapper映射说明
SqlMappe 映射文件示例

发布日期:2012-07-14       浏览:5982 次
SQL-Mapper映射文件示例如下:
应用程序配置文件:
XML/HTML Code复制内容到剪贴板
  1. <appSettings>  
  2.       <!--Mapper映射文件路径,Mapper缓存依赖该映射路径下的映射文件-->  
  3.       <add key="ScriptMapPath" value="DataMapper\SqlMapper"/>  
  4.       <!--Mapper映射文件缓存分钟数-->  
  5.       <add key="ScriptMapCacheInterval" value="180"/>  
  6.   </appSettings>  
映射文件示例:
折叠XML/HTML Code复制内容到剪贴板
  1. <?xml version="1.0" encoding="utf-8" ?>  
  2. <!--映射配置文件,文件命名规则为表名.config,文件路径通过AppSetting的ScriptMapPath设置;-->  
  3. <DevNetMapper>  
  4.     <!--以下操作在DevNet框架中已实现,只做演示 Start-->  
  5.     <!-- CommandType="StoredProcedure"-->  
  6.     <Command Name="GetUserAll" CommandType="Text" Description="获取所有用户信息">  
  7.         <Script>  
  8.             <![CDATA[  
  9.                 SELECT * FROM Users 
  10.             ]]>  
  11.         </Script>  
  12.     </Command>  
  13.     <Command Name="GetUserByID"  CommandType="Text" Description="获取单个用户信息">  
  14.         <Script>  
  15.             <![CDATA[  
  16.                 SELECT * FROM Users WHERE UserID=@UserID 
  17.             ]]>  
  18.         </Script>  
  19.         <!--以下参数名称请与查询类属性名称保持一致;Oracle存储过程参数因不需要冒号,请在参数名称前加上一个字符,譬如p;-->  
  20.         <Parameter>@UserID</Parameter>  
  21.     </Command>  
  22.     <Command Name="UpdateUserByID"  CommandType="Text" Description="根据ID更新用户信息">  
  23.         <Script>  
  24.             <![CDATA[  
  25.                 UPDATE Users SET UserName=@UserName,RegCap=@RegCap,IsAdmin=@IsAdmin,Ctime=@Ctime,Vvv=@Vvv WHERE UserID=@UserID 
  26.             ]]>  
  27.         </Script>  
  28.         <!--以下参数名称请与实体属性名称保持一致-->         
  29.         <Parameter>@UserName</Parameter>  
  30.         <Parameter>@RegCap</Parameter>  
  31.         <Parameter>@IsAdmin</Parameter>  
  32.         <Parameter>@Ctime</Parameter>  
  33.         <Parameter>@Vvv</Parameter>  
  34.         <Parameter>@UserID</Parameter>  
  35.     </Command>  
  36.     <Command Name="InsertUser" CommandType="Text" Description="添加一条用户信息">  
  37.         <Script>  
  38.             <![CDATA[ 
  39.                 insert into Users (UserName,RegCap,IsAdmin,Ctime,Vvv) values (@UserName,@RegCap,@IsAdmin,@Ctime,@Vvv) 
  40.             ]]>  
  41.         </Script>  
  42.         <!--以下参数名称请与实体属性名称保持一致;UserID为自增型字段-->  
  43.         <Parameter>@UserName</Parameter>  
  44.         <Parameter>@RegCap</Parameter>  
  45.         <Parameter>@IsAdmin</Parameter>  
  46.         <Parameter>@Ctime</Parameter>  
  47.         <Parameter>@Vvv</Parameter>  
  48.     </Command>  
  49.     <!--演示 End-->  
  50.       
  51.     <!--以下为查询带条件参数简单Mapper演示 Start-->  
  52.     <!--有关复杂查询,需要根据参数值作判断进行查询【譬如:判断是否为空,与某值比较等条件】,考虑到如果使用NoEmpty,Like,MoreThan等标签形式映射不够理想,也难以全面实现,可以考虑动态编译;建议先使用存储过程;  
  53.     CommandType="StoredProcedure"存储过程,框架将自动从存储过程中获取执行参数  
  54.     -->  
  55.     <Command Name="GetUserPagerList" CommandType="Text"  Description="获取分页用户信息">  
  56.         <!--Dynamic 是否动态编译 请使用C#语句写Script内的脚本,只有比较查询参数条件的复杂语句有效-->  
  57.         <Script DynamicCompiler="1">  
  58.             <![CDATA[ 
  59.             string ret="select * from Users where 1=1"; 
  60.             if(#@UserName#!="")  //条件参数请使用  #参数名#  的规则 
  61.                 ret+= " and UserName Like N'%'+@UserName+'%'"; 
  62.             if (#@IsAdmin#!=2) 
  63.                 ret+=" and IsAdmin = @IsAdmin"; 
  64.             ret+=" and Ctime Between @StartDate and @EndDate"; 
  65.             return ret;          //请返回一个字符串值,否则动态编译失败!错误信息详见Log下的日志 
  66.             ]]>  
  67.         </Script>  
  68.         <Parameter>@UserName</Parameter>  
  69.         <Parameter>@IsAdmin</Parameter>  
  70.         <Parameter>@StartDate</Parameter>  
  71.         <Parameter>@EndDate</Parameter>  
  72.     </Command>  
  73.   
  74.     <Command Name="GetUserPagerListBySP" CommandType="StoredProcedure"  Description="获取分页用户信息">  
  75.         <Script>  
  76.             <![CDATA[ 
  77.                 sp_Users_GetPageList 
  78.             ]]>  
  79.         </Script>  
  80.         <!--Sql Server存储过程中是否包含返回值参数,框架将自动从存储过程中获取执行参数;  
  81.         如果不是存储过程,则需要加入Parameter标签;  
  82.         -->  
  83.         <IncludeReturnValue>1</IncludeReturnValue>  
  84.     </Command>  
  85.     <!--演示 End-->  
  86. </DevNetMapper>  
这是一个XML格式的文件,DevNet框架内将映射文件信息放入缓存,并缓存依赖该映射文件,当映射文件修改时,框架将从映射文件重新读取相关信息