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() ,
@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;
}
IBatis.Net使用总结(四)-- IBatis 调用存储过程的更多相关文章
- Java和Ibatis调用存储过程并取得返回值详解
Java和Ibatis调用存储过程并取得返回值详解 2011-07-19 17:33 jiandanfeng2 CSDN博客 字号:T | T 本文主要介绍了Java和Ibatis调用存储过程的方法, ...
- MySQL 存储过程实例 与 ibatis/mybatis/hibernate/jdbc 如何调用存储过程
虽然MySQL的存储过程,一般情况下,是不会使用到的,但是在一些特殊场景中,还是有需求的.最近遇到一个sql server向mysql迁移的项目,有一些sql server的存储过程需要向mysql迁 ...
- iBatis调用存储过程以及MySQL创建存储过程
首先是MySQL中创建存储过程的SQL -- 列出全部的存储过程 SHOW PROCEDURE STATUS; -- 查看一个已存在的存储过程的创建语句,假设此存储过程不存在,会提示SQL错误(130 ...
- Ibatis调用存储过程实现增删改以及分页查询
1.Ibatis实现增删改操作很简单了,通常我是将某一模块的增删改功能写在一个存储过程里,通过一个标识符去区分执行增加还是修改抑或删除操作. statement: <!-- 存储过程:实现学生的 ...
- ibatis 调用存储过程
ibatis 调用存储过程 CreationTime--2018年8月15日19点38分 Author:Marydon 1.返回系统游标集合 第一步:返回值,将返回值封装到HashMap中 < ...
- ibatis调用存储过程(无返回参数)
ibatis调用存储过程例子: java: getSqlMapClientTemplate().insert(sql, paraMap) ibatis xml: <parameterMap id ...
- ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪
ASP.NET MVC深入浅出(被替换) 一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...
- [原创]java WEB学习笔记79:Hibernate学习之路--- 四种对象的状态,session核心方法:save()方法,persist()方法,get() 和 load() 方法,update()方法,saveOrUpdate() 方法,merge() 方法,delete() 方法,evict(),hibernate 调用存储过程,hibernate 与 触发器协同工作
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法
一. 背景 上一个章节,介绍了EF调用两类SQL语句,主要是借助 ExecuteSqlCommand 和 SqlQuery 两个方法来完成,在本章节主要是复习几类存储过程的写法和对应的EF调用这几类 ...
随机推荐
- 轮播插件unsilder 源码解析(一)---使用
啰嗦几句:学习的可以直接省略,一直本着写原生的插件想法,但是前天看了吕大豹的博客觉得自己都没有正经的写个jquery插件:所以在开始写之前我会先对几个比较热门的jquery的插件进行源码分析:至于为什 ...
- python 生成器等语法
生成器 调用生成器函数,不会执行生成器函数中的代码,而是返回一个对象, 这个对象是生成器(可用type()函数判断这个对象类型), 如果要运行生成器函数中的代码, 需要调用 next()方法, ...
- Apache Shiro 学习记录2
写完上篇随笔以后(链接).....我也想自己尝试一下写一个Strategy.....Shiro自带了3个Strategy,教程(链接)里作者也给了2个.....我想写个都不一样的策略.....看来看去 ...
- 如何在Android应用中引入外部网页
在某些情况下,我们需要在Android应用中引入外部网页,这里记录一下如何操作(其实很简单^.^). 先介绍一下开发环境: 开发工具:Android Studio 1.5 SDK API版本:17 操 ...
- jQuery学习过程问题笔记
1. jQuery中,$('selector').click(function(){})和用bind绑定:$('selector').bind('click',function(){})有什么区别? ...
- C# socket send方法
转 http://msdn.microsoft.com/zh-cn/library/d318fkch(v=vs.80).aspx
- ThinkPHP3.2.3多文件上传,文件丢失问题的解决
描述 thinkphp多文件上传时,有些时候会出现文件丢失的情况.比如上传多个图片,最终只上传了一个图片.本地测试的时候是正常的,但上传到服务器上就会出现丢失文件这种情况. 原因 查看tp上传类(Th ...
- Eclipse导出插件工程
一.Feature Projecties工程设置 1. 新建一个Feature Projecties 2. 选择我们的插件工程,finish 3. 在目录下新建一个Category definitio ...
- mysql 查询表结构
use information_schema; select column_name, column_type, data_type, is_nullable, column_comment from ...
- PHP window下安装Spl_Types模块
1. Window下,Spl_Types的模块的下载地址:http://pecl.php.net/package/SPL_Types/0.4.0/windows 2. php的可执行文件已经加到系统的 ...