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 ‘[email protected] + ‘ where ‘ + @qWhere ;
set @sqlstr = ‘SELECT * FROM ( ‘[email protected]+‘ ) 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 ‘ [email protected];

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>
时间: 2024-10-09 21:48:35

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

创建并在项目中调用SQLSERVER存储过程的简单示例

使用SQLSERVER存储过程可以很大的提高程序运行速度,简化编程维护难度,现已得到广泛应用.创建存储过程 和数据表一样,在使用之前需要创建存储过程,它的简明语法是: 引用: Create PROC 存储过程名称 [参数列表(多个以","分隔)] AS SQL 语句 例: 引用: Create PROC upGetUserName @intUserId INT, @ostrUserName NVARCHAR(20) OUTPUT -- 要输出的参数 AS BEGIN -- 将uName

C#调用sqlserver存储过程

直奔主题,记录 命名空间:using System.Data.SqlClient; 数据库链接串:sqlserver的数据库链接串格式为:server={0};database={1};uid={2};pwd={3} //0:服务器,1:数据库名,2:用户名,3:密码 调用: using (SqlConnection connection = new SqlConnection(SqlServerHelper.ConnectionString)) { connection.Open(); Sql

php pdo调用SQLServer存储过程无法获取返回结果

确定存储过程写的没问题,php调用后,跟踪了语句,也是没问题,就是获取不到返回结果.折腾,搞定. 较之前明确了1. 调用存储过程传参的写法: 2. 获取返回结果集的方法 参考: http://blog.csdn.net/a544419699/article/details/54341888 http://www.jb51.net/article/39437.htm http://blog.csdn.net/sxyhq/article/details/39996393 https://social

iBatis调用存储过程以及MySQL创建存储过程

首先是MySQL中创建存储过程的SQL -- 列出所有的存储过程 SHOW PROCEDURE STATUS; -- 查看一个已存在的存储过程的创建语句,如果此存储过程不存在,会提示SQL错误(1305):PROCEDURE pro_init does not exist SHOW CREATE PROCEDURE pro_init; -- 创建存储过程 DROP PROCEDURE IF EXISTS pro_init; -- 删除一个已存在的存储过程 DELIMITER // -- 声明当前

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 调用存储过程

ibatis 调用存储过程 CreationTime--2018年8月15日19点38分 Author:Marydon 1.返回系统游标集合 第一步:返回值,将返回值封装到HashMap中 <resultMap class="java.util.HashMap" id="directoryMonitor_out_cursor"> <!-- column代表的是返回的字段,property代表的是HashMap的键,指定具体的键负责接收 -->

SQLSERVER存储过程语法具体解释

SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ]     [ { @parameter data_type }         [ VARYING ] [ = default ] [ OUTPUT ]     ] [ ,...n ] [ WITH     { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sq

12mybatis调用执行存储过程

mybatis 调用执行存储过程 mysql 声明建立存储过程 删除 在mysql中调用 -- 声明定义存储过程 delimiter $$ create procedure delbook(id int) begin delete from book where book_id=id; end$$ delimiter ; -- 删除存储过程 drop procedure delbook; -- 调用执行存储过程 call delbook(4); select * from book; mybat

SQLServer存储过程基本语法

SQLSERVER: 变量的声明:声明变量时必须在变量前加@符号DECLARE @I INT 变量的赋值:变量赋值时变量前必须加setSET @I = 30 声明多个变量:DECLARE @s varchar(10),@a INT if语句: Java代码 if .. begin ... end else if .. begin ... end else begin ... end Example: Sql代码 DECLARE @d INT set @d = 1 IF @d = 1 BEGIN