zoukankan      html  css  js  c++  java
  • IBatis.Net使用总结(四)-- IBatis 调用存储过程

     IBatis 调用存储过程

    http://www.cnblogs.com/jeffwongishandsome/archive/2010/01/10/1543219.html

    http://www.cnblogs.com/firstyi/archive/2008/01/25/1053208.html

    存储过程大致分为两种:

    • 查询类存储过程——select查询类的存储过程,不曾改变数据库数据的存储过程
    • 更新类存储过程——Update/Insert/Delete类型的存储过程,改变数据库数据的存储过程

    IBatis.net调用存储过程:

    1、查询类型的存储过程

    创建一个查询类存储过程,其中包含output参数。

    CREATE PROCEDURE up_GetCountByTitle
        @title VARCHAR(100)    ,
        @total INT OUT
        AS
        BEGIN
            WITH a AS (
            SELECT * FROM Article a WHERE a.ArticleTitle LIKE '%'+@title+'%')        
            SELECT @total=COUNT(*) FROM a
        END
    获取总数的存储过程

    XML文件,如果包含输出参数,输出参数属性值,必须包含column属性。

    <?xml version="1.0" encoding="utf-8" ?>
    <sqlMap namespace="Article"
        xmlns="http://ibatis.apache.org/mapping"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    
      <alias>
        <typeAlias alias="Article" type="YY.MicroNet.Model.Article,YY.MicroNet.Model"/>
      </alias>
    
      <resultMaps>
        <resultMap id="FullResultMap" class="Article">
          <result property="PKArticle" column="PK_Article" dbType="VarChar"/>
          <result property="ArticleTitle" column="ArticleTitle" dbType="NVarChar"/>
          <result property="ArticleAuthor" column="ArticleAuthor" dbType="NVarChar"/>
          <result property="ArticleContent" column="ArticleContent" dbType="NVarChar"/>
          <result property="EditTime" column="EditTime" dbType="DateTime"/>
          <result property="Dr" column="Dr" dbType="Bit"/>
          <result property="Ts" column="Ts" dbType="DateTime"/>
        </resultMap>
        <parameterMaps>
          <!--parameterMap中的参数个数和顺序要和up_GetCountByTitle存储过程中的一致-->
          <parameterMap id="params" class="Hashtable">
            <parameter property="title" />
            <parameter property="total" column="total" direction="Output"/>
          </parameterMap>
        </parameterMaps>
      </resultMaps>
    
      <statements>
        <!--调用查询类型的存储过程-->
        <procedure id="Article_GetCountByTitle" parameterMap="" resultClass="System.Int32">
          up_GetCountByTitle
        </procedure>
      </statements>
    </sqlMap>
    ArticleMap.xml

    在cs中调用

            public IList<Article> GetCountByTitle(Hashtable ht)
            {
                String stmtId = "Article_GetCountByTitle";
                IList<Article> result = SqlMap.QueryForList<Article>(stmtId,  ht);
                return result;
            }
    

      

    感谢您的认真阅读,更多内容请查看:
    出处:http://www.cnblogs.com/weiqinl
    个人主页http://weiqinl.com
    github: weiqinl
    简书:weiqinl
    您的留言讨论是对博主最大的支持!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    hive on tez自定义jobname
    hive血缘关系之输入表与目标表的解析
    spark ml中一个比较通用的transformer
    TF-IDF小记
    namenode服务迁移
    spark on yarn上的dynamic executor
    zookeeper集群线上机器置换
    namenode元数据容错
    Spark HistoryServer服务迁移
    Java中Webservice调用.NET天气接口生成客户端异常
  • 原文地址:https://www.cnblogs.com/weiqinl/p/4936121.html
Copyright © 2011-2022 走看看