ibatis调用sqlserver存储过程

获取分页的每页结果存储过程

CREATE PROCEDURE [dbo].[mst_sp_pageshowex4] 
--输入参数
    @qCols varchar(8000),             --
    @qTables   varchar(8000),          -- 
    @qWhere   varchar(8000),          --
    @oKey        varchar(100),        --
    @pageSize         int,            --
    @pageNumber       int             --, 0
AS
--不生成影响行数
set nocount on
 BEGIN
--声明变量
    DECLARE @sqlstr AS varchar(max)
    DECLARE @sqlTable AS varchar(8000)

set @sqltable = 'SELECT ROW_NUMBER() OVER(ORDER BY '+ @oKey + '  ) AS RowId,' + @qCols + ' FROM '+@qTables + ' where ' + @qWhere ;
set @sqlstr = 'SELECT * FROM ( '+@sqlTable+' ) AS D WHERE RowId between ' + str(@pageNumber*@pagesize +1) + ' AND ' + str((@pageNumber +1)*@pagesize) ;

exec (@sqlstr);

END

获取分页总记录数目存储过程

create PROCEDURE [dbo].[sp_pagecount] 
    @qfromTables   varchar(8000),     -- 来自哪几张表
    @qwhere  varchar(8000)    
AS
 BEGIN

    DECLARE @sqlstr AS varchar(8000)

set @sqlstr='SELECT COUNT(*) FROM ' + @qfromTables +' where ' +@qwhere;

print @sqlstr;
exec (@sqlstr);
END

sql映射文件Article.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
        PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
        "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="Article">
    <select id="queryForPaginate2" parameterClass="article" resultClass="article">
        mst_sp_pageshowex4 '$columns$ ','$table$','$where$','$orderBy$',$pageSize$,$pageNo$
    </select>

    <select id="count2" parameterClass="article" resultClass="integer">
        sp_pagecount '$table$','$where$'
    </select>
</sqlMap>

本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1720357

时间: 2024-09-15 02:22:46

ibatis调用sqlserver存储过程的相关文章

ASP调用SqlServer存储过程的经典示例(原创)

ASP调用SqlServer存储过程的经典示例 1.无输入参数,无返回值这种方式比较少见,但也是一种情况.ConnString="Dsn=DsnName;Uid=user;Pass=pass"Set Conn = Server.CreateObject("Adodb.Connection")Conn.Open ConnStringConn.Execute "ProcName" 2.两个输入参数,无返回值ConnString="Dsn=D

.net下调用sqlserver存储过程的小例子_实用技巧

首先,在sqlserver中创建存储过程,在调用时分为有参数和没有参数两种情况,先就简单的没有参数的情况简要的介绍: 假设存储过程如下: 复制代码 代码如下:     create proc selectall as select * from studentinf 则此sp的调用如下: sqlcommand selectcmd = new sqlcommand("selectall", conn); //conn 为sqlconnection selectcmd.commandtyp

mysql-ODBC调用MYSQL存储过程

问题描述 ODBC调用MYSQL存储过程 ODBC访问MySQL地带OUT参数的存储过程时出错,提示信息为:OUT or INOUT argument 1 for routine test.ProcTest2 is not a variable or NEW pseudo-variable in BEFORE trigger 查了资料,貌似是MySQL的bug,是这样的吗?求各位大侠帮帮忙,谢谢了! 解决方案 http://blog.sina.com.cn/s/blog_4b3ad3b70100

SQLSERVER存储过程及调用详解

 使用SQLSERVER存储过程可以很大的提高程序运行速度,简化编程维护难度,现已得到广泛应用. 存储过程其实就是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合. 可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程). 也可以创建在 Microsoft SQL Server 启动时自动运行的存储过程. 要使用存储过程,首先我们必需熟悉一些基本的T-SQL语句,因为存储过程是由于一组T-SQL语句构成的,并且,我

oracle 怎么调用sqlserver的存储过程

问题描述 oracle 怎么调用sqlserver的存储过程 RT. 我在orcale 11G里面写了个存储过程.需要调用 sqlserver 里面的 存储过程,该怎么做? sqlserver 的查询功能,存储过程名称已经获得. ** 注意. 还要传一个参数过去,并且带有返回值的哦.** 解决方案 这个 我知道一个偏门的方法 就是,,,oracle 里面 调用java代码 ,在Java代码里面 调用sqlserver 的存储过程

struts2+spring2.0+ibatis调用存储过程。

问题描述 我现在的做的项目是struts2+spring2.0+ibatis的,以前一直用Hibernate,对ibatis不熟.现在要频繁的调用一批存储过程.我有个问题,不理解.struts2+spring2.0+ibatis的系统,可以配置了既可以用ibatis又可以用jdbc吗我发觉jdbc调用存储过程比较简单,但是如果是在现有系统中不用spring的事务管理,自己在代码里写个链接jdbc的代码,很多存储过程要频繁打开,关闭连接,性能肯定不行.所以想问问,有什么方法,比如,ibatis直接

SQLServer存储过程访问数据库权限异常问题的解决方案

server|sqlserver|存储过程|访问|解决|数据|数据库|问题 最近用ASP.net 2.0 + SQL Server做一个网页表单的提交,使用C#编写存储过程来完成向SQL Server数据库表中插入记录的操作.在调用这个存储过程时,出现了关于存储权限的一个异常.下面详述异常产生的过程和解决方案. 1.操作步骤:1)使用ASP.net 2.0,用C#写了一个存储过程,对数据库test中的一个表进行操作,代码如下: public class StoredProcedures{[Mic

利用SQLSERVER存储过程实现ASP用户身份验证

server|sqlserver|存储过程 在我们编写用户身份验证程序中,很容易用ASP调用SQL语句来检索数据表中是否有条件相符的记录,然后再用ASP进行相关处理. 条条道路通罗马!当然,我们也可以用SQL SERVER数据库的存储过程来轻松实现这个功能.虽然相对而言较复杂,但其效率的提升是很明显的,因为存储过程是在数据库中已经编译好的一段程序,我们只需用ASP将其所用的各种参数正确传递就行了. 本文也主要是想通过一个简单的事例,向大家介绍一下如何在ASP中调用带参数的存储过程.希望大家能从中

Sqlserver存储过程深入分析(非常详细)

前言 虽说现在orm,nosql对数据的操作会减少很多t-sql的编程,但是t-sql这应该是每个程序员要掌握的,接下来的两周准备把这块知识点进行系统总结. 1.什么是存储过程 Transact-SQL中的存储过程,非常类似于net语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样 就可以提高存储过程的性能.  1. 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称