我们在使用IBatis.net操作数据的时候,肯定会碰到SQL参数
当我们有一个参数时,IBatis的xml映射文件如下:

<statement id="getProduct" parameterClass="System.Int32">
select * from PRODUCT where PRD_ID = #value#
</statement>

当我们有多个参数时,xml如下:

<statement id="getProduct" parameterClass="System.Collections.IDictionary">
select * from PRODUCT
where PRD_CAT_ID = #catId#
and PRD_CODE = #code#
</statement>

在代码中必须赋给他一个Hashtable,并且这个Hashtable具有catId和code两个键值,注意要区分大小写。

HashTable实现了System.Collections.IDictionary接口的,所以直接用他应该也是可以的。

当我们执行存储过程的时候,xml如下:
首先定义参数定义集合

<parameterMaps>
<parameterMap id="insertperson" class="Person">
<parameter property="FirstName" column="PER_FIRST_NAME" />
<parameter property="LastName" column="PER_LAST_NAME" />
</parameterMap>
</parameterMaps>

然后定义操作

<!--使用存储过程-->

<procedure id="InsertPerson3" parameterMap="insertperson" resultMap="SelectResult">
usp_InsertPerson
</procedure>

程序代码如下:

public void InsertPerson3()
{
SqlMapper sqlmap = IBatisNet.DataMapper.Mapper.Instance(); Hashtable ht = new Hashtable();
ht.Add("FirstName","姚");
ht.Add("LastName","明2"); sqlmap.Insert("InsertPerson3",ht);
}

注意:Hashtable中的键值名称和参数集合众的property相对应,并且区分大小写.

IBatis.Net系列-多参数的SQL语句的配置的更多相关文章

  1. 通过带参数的Sql语句来实现模糊查询(多条件查询)

    #region 通过带参数的Sql语句来实现模糊查询(多条件查询) StringBuilder sb = new StringBuilder("select * from books&quo ...

  2. laravel 中的 toSql 获取带参数的 sql 语句

    默认情况下,toSql 获取到的 sql 里面的参数使用 "?" 代替的,如下: DB::table('user')->where('id', 1)->toSql(); ...

  3. MySQL注入 前端int型参数插入SQL语句

    类似PHP语言的 mysql_real_escape_string() 的函数,在用来防范SQL注入的时候,可能会遇到int型注入成功的情况. mysql_real_escape_string()用法 ...

  4. SqlParameter类——带参数的SQL语句

    http://blog.csdn.net/woshixuye/article/details/7218770 SqlParameter 类 表示 SqlCommand 的参数,也可以是它到 DataS ...

  5. jdbc打印sql语句-p6spy配置

    @Configuration public class P6SpyConfig { /** * P6数据源包装, 打印SQL语句 */ @Bean public P6DataSourceBeanPos ...

  6. .Net ADO拼接带参数的SQL语句

    首先是在DAL数据访问层中的代码://数据更新的方法public static int shuxing_update(s_passnature model) { string sql = " ...

  7. 使用带参数的SQL语句向数据库中插入空值

    private void button1_Click(object sender, EventArgs e) { string name = textBox1.Text; int age = Conv ...

  8. SQLSERVER 根据传入的参数拼接sql语句字符串,反馈结果集

    ALTER PROCEDURE [dbo].[usp_visit_detail](@siteid BIGINT, @Startime VARCHAR(15), @Endtime  VARCHAR(15 ...

  9. ado.net调用带参数的sql语句

随机推荐

  1. (三)NAND flash和NOR flash的区别详解

    我们使用的智能手机除了有一个可用的空间(如苹果8G.16G等),还有一个RAM容量,很多人都不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的.这二种存储设备我们都统称为“FLASH ...

  2. 当CanTK遇到PhoneGap

    有朋友问能不能在CanTK和AppBuilder开发的APP里发送UDP数据,HTML5里只能用HTTPS/HTTP/WebSocket几种通讯方式,要使用UDP需要通过phonegap打包成APK等 ...

  3. 数据库函数--nvl、coalesce、decode比较

    SQL中 nvl().coalesce().decode()这三个函数nvl(bonus,0) 2个参数 if bonus is null return 0 else return bonus,ora ...

  4. @ExceptionHandler

    @Controller public class AccessController { /** * 异常页面控制 * * @param runtimeException * @return */ @E ...

  5. data structure

    转载请注明出处: 我所遇见的世界会更美好 我曾经逢人就说总是遇到这样那样错误无法解决,但是这些问题只要静下心来仔细思考根本没有解决不了的问题. 其实明明,超级超级简单,然而被老师讲的天花乱坠, 栈: ...

  6. VBA中四种自动运行的宏以及模块的含义

    在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作 簿时自动运行), Auto_Close, Auto_Activate,  Auto_Deactivate. ...

  7. ajax轮询session阻塞问题

    近来读了几篇关于ASP.NET下Session机制的文章,结合自己的实际应用,有点感想:        在ASP.NET的Session的默认机制下,对同一个SessionID下的用户请求ASP.NE ...

  8. WPF: DatePicker

    获取DatePicker:date_Start上显示的时间date_Start.SelectedDate 比较两个dateTime类型的时间: DateTime StartDate =Convert. ...

  9. 呆呆的io流输入输出的一些基础

    关于io流的File类,下面来码一些基础属性: 文件的属性: /* public String getName() 获取文件的名字 public boolean canRead() 判断文件是否可以读 ...

  10. HIbernate实现增、删、改、查。

    //大配置 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC " ...