Hibernate 调用SQL Server 2005 分页存储过程
2008-05-10 17:18
465 查看
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[getRecordByPage]
-- Add the parameters for the stored procedure here
@PageSize int,
@PageNumber int,
@QuerySql varchar(1000),
@KeyField varchar(500)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
Declare @SqlTable AS varchar(1000)
Declare @SqlText AS Varchar(1000)
Set @SqlTable='Select Top '+CAST(@PageNumber*@PageSize AS varchar(30))+' '+@QuerySql
Set @SqlText='Select Top '+Cast(@PageSize AS varchar(30))+' * From '
+'('+@SqlTable+') As TembTbA '
+'Where '+@KeyField+' Not In (Select Top '+CAST((@PageNumber-1)*@PageSize AS varchar(30))+' '+@KeyField+' From '
+'('+@SqlTable+') AS TempTbB)'
Exec(@SqlText)
END
public List getPageList(String pageSize,String page){
String sql="* from utable";
String KeyField="Id";
session=getSession();
Query query = session.getNamedQuery("getPageList");
query.setString(0, pageSize);
query.setString(1, page);
query.setString(2, sql);
query.setString(3, KeyField);
List list=query.list();
session.close();
return list;
}
<sql-query name="getPageList" callable="true">
<return alias="user" class="com.feixun.hibernate.Utable">
<return-property name="id" column="Id"/>
<return-property name="uname" column="uname"/>
<return-property name="upwd" column="upwd" />
</return>
{call getRecordByPage(?,?,?,?)}
</sql-query>
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[getRecordByPage]
-- Add the parameters for the stored procedure here
@PageSize int,
@PageNumber int,
@QuerySql varchar(1000),
@KeyField varchar(500)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
Declare @SqlTable AS varchar(1000)
Declare @SqlText AS Varchar(1000)
Set @SqlTable='Select Top '+CAST(@PageNumber*@PageSize AS varchar(30))+' '+@QuerySql
Set @SqlText='Select Top '+Cast(@PageSize AS varchar(30))+' * From '
+'('+@SqlTable+') As TembTbA '
+'Where '+@KeyField+' Not In (Select Top '+CAST((@PageNumber-1)*@PageSize AS varchar(30))+' '+@KeyField+' From '
+'('+@SqlTable+') AS TempTbB)'
Exec(@SqlText)
END
public List getPageList(String pageSize,String page){
String sql="* from utable";
String KeyField="Id";
session=getSession();
Query query = session.getNamedQuery("getPageList");
query.setString(0, pageSize);
query.setString(1, page);
query.setString(2, sql);
query.setString(3, KeyField);
List list=query.list();
session.close();
return list;
}
<sql-query name="getPageList" callable="true">
<return alias="user" class="com.feixun.hibernate.Utable">
<return-property name="id" column="Id"/>
<return-property name="uname" column="uname"/>
<return-property name="upwd" column="upwd" />
</return>
{call getRecordByPage(?,?,?,?)}
</sql-query>
相关文章推荐
- Sql Server 分页通用存储过程及调用
- 深入sql server 2005 万能分页存储过程的详解
- 根据表或者视图自动生成分页语句的存储过程,适用于Sql Server 2005及以上版本
- SQL SERVER 2005 通用高效分页存储过程
- SQL Server 2005 分页存储过程
- 基于SQL Server 2005新特性的分页存储过程
- SQL Server 2005 分页存储过程
- sql server 2005分页存储过程和sql server 2000分页存储过程
- JDBC调用Sql server 2005 存储过程出现的问题
- SQL Server 2005通用分页存储过程及多表联接应用
- sql server 2005分页存储过程和sql server 2000分页存储过程(转,来源不明)
- sql server 2005 万能分页存储过程
- sql server 2005分页存储过程和sql server 2000分页存储过程
- Sql Server 2005 新的分页存储过程的推荐写法
- sql server 2005分页存储过程和sql server 2000分页存储过程
- 基于SQL Server 2005新特性的分页存储过程
- 分页存储过程,SQL SERVER 2005自带功能
- SQL SERVER 2005分页存储过程
- sql server 2005分页存储过程和sql server 2000分页存储过程