zoukankan      html  css  js  c++  java
  • IBatis.Net系列-多参数的SQL语句的配置

    我们在使用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相对应,并且区分大小写.

  • 相关阅读:
    [NOI2001]炮兵阵地
    POJ 2411 Mondriaan's Dream
    【模板】割点(割顶)
    [Noip2007]Core树网的核
    2018.09.09模拟总结
    2018.09.08模拟总结
    [USACO11JAN]Roads and Planes
    最优贸易
    [USACO08JAN]Telephone Lines
    Calabash(葫芦娃)
  • 原文地址:https://www.cnblogs.com/caoyc/p/5850014.html
Copyright © 2011-2022 走看看