今天做项目的时候,要实现分页查询的功能,一开始的想法就是用SQL语句实现(项目数据操作是用Nhibernate),但认真考虑了下发现在所做的项目里实现会很麻烦,果断放弃了用SQL语句。因为刚接触NHibernate时间不长,对Nhibernate认识不深,但在做项目的这段时间里接触它,发现Nhibernate真的很好用(以前怎么就没有去了解它呢)。

在Nhibernate里实现分页很简单,用 SetFirstResult 和SetMaxResults就可以实现,SetFirstResult 简单的理解就是从第几条记录开始,SetMaxResults是取几条记录。以下是一个测试的代码,从Customer表里取记录,主要的就是GetCustomerListTest方法:

代码

public partial class Default : System.Web.UI.Page
{
private ISession _session;
private SessionManager _helper;
private NHibernateSample _sample;
protected void Page_Load(object sender, EventArgs e)
{
_helper = new SessionManager();
_session = _helper.GetSession();
_sample = new NHibernateSample(_session);
}
protected void btnClick_Click(object sender, EventArgs e)
{
IList<Customer> customerList = GetCustomerListTest(5, 10, "select *from Customer");
int i=0;
string[] nameArrary = new string[customerList.Count];
foreach (Customer customer in customerList)
{
nameArrary[i] = customer.FirstName + customer.LastName;
i++;
}
foreach (var name in nameArrary)
{
Response.Write(name + "<br />");
}
}
/// <summary>
/// 分页测试
/// </summary>
/// <param name="pageStart">开始查找的记录条</param>
/// <param name="pageLimit">显示数量</param>
/// <param name="sql"></param>
/// <returns></returns>
public IList<Customer> GetCustomerListTest(int pageStart, int pageLimit, string sql)
{
IList<Customer> customerList = _session.CreateSQLQuery(sql)
.SetFirstResult(pageStart)
.SetMaxResults(pageLimit)
.SetResultTransformer(Transformers.AliasToBean<Customer>()).List<Customer>();
return customerList;
}

转载于:https://www.cnblogs.com/chenyt/archive/2010/12/04/Nhibernate.html

NHibernate分页的测试相关推荐

  1. Nhibernate分页测试续(附源码)

    接着上一篇Nhibernate分页测试,最近一直在接触Nhibernate,接触的越多.了解越深,越是感觉他的强大,很多功能都封装的很好,对数据操作是那么的简单.接下来介绍的是MVC+Nhiberna ...

  2. 通用存储过程分页---(测试能用的请放心试用)

    参数:分页大小,第几页,需要得到的字段 ,需要查询的表 , 查询条件,排序的字段名,排序的类型,主键名称 分页大小:整数 第几页:整数 需要得到的字段:字符串 需要查询的表:字符串 查询条件:字符串 ...

  3. JAVA List集合转Page(分页对象) java 分页 PageModel 测试类TestPagerModel

    http://www.blogjava.net/jzone/archive/2015/06/05/308842.html?opt=admin /**  * @version 1.0  * @autho ...

  4. mysql 分页查询分析_mysql 大表分页查询测试分析优化

    http://blog.csdn.net/xluren/article/details/32746183 http://www.cnblogs.com/kupig/archive/2011/10/19 ...

  5. SSh结合Easyui实现Datagrid的分页显示

    近日学习Easyui,发现非常好用,界面很美观.将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加.修改.删除.批量删除等功能将在后面的博客一一写来. ...

  6. Asp.Net 数据分页

    .Net 所使用的 ADO.Net较前身ADO在性能上有较大的提升,但是操作起来也较为繁琐,在 Asp 时代,对数据进行分页使用 RecordSet 的 PageSize 和 AbsolutePage ...

  7. EFCore+Mysql仓储层建设(分页、多字段排序、部分字段更新)

    前沿 园子里已有挺多博文介绍了EFCore+Mysql/MSSql如何进行使用,但实际开发不会把EF层放在Web层混合起来,需要多个项目配合结构清晰的进行分层工作,本文根据个人实践经验总结将各个项目进 ...

  8. MyBatis-Plus_分页查询

    查询专栏:myabtis 实现的分页为什么还要分页插件? 文章目录 1. 创建分页插件 2. 测试分页 3. 自定义分页 4. 测试自定义分页方法 5. 控制台输出 6. 多表操作 1. 创建分页插件 ...

  9. Java标签分页实现

    Java实现标签分页(转自http://ybyonline.iteye.com/blog/1745049) 最近为了开发一个网站,里面要用分页功能,但是之前很少自己写分页标签,又不想用现成框架.所以自 ...

最新文章

  1. ASP.NET 2.0关于用户登录限制问题实例:防止同一用户同时登陆
  2. hadoop multipleoutputs
  3. CentOS 7镜像下载和安装教程
  4. windows 下 logstash 安装启动
  5. 解决Jenkins邮件配置问题
  6. R语言基础入门(3)之数据类型与相应运算1
  7. 这些数据分析方法你都掌握了么
  8. Xcode9模拟器隐藏边框
  9. 为什么技术人干得越久越拿不到高薪?
  10. Git最好的CRLF(回车,换行)处理策略是什么?
  11. Vertica系列:数仓优化
  12. 在OpenStack虚拟机实例中创建swap分区的一种方法
  13. tomcat启动时报错ports are invalid,默认端口不要为-1
  14. 记 * 恢复ext4硬盘的数据
  15. 微信打电话和直接打电话有什么区别吗?为什么?
  16. 企业综合能效管理系统,工业能耗解决方案
  17. smali语法基础详解
  18. tomcat闪退没有报错_越狱后直接换sileo商店附Sileo的部分报错解决办法
  19. HTML期末作业:基于html+css+javascript+jquery实现古诗词网页 学生网页设计作品 web前端开发技术 web课程设计 网页规划与设计...
  20. 阿里、腾讯、字节、京东、美团、百度......薪资职级大比拼

热门文章

  1. 超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大
  2. WebBrowser 操作(从网上收集)
  3. delphi 中CreateOleObject函数产生的对象的释放问题
  4. 使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)
  5. 数组中删数(只删一个)
  6. 安装已停止,原因是 ProjectType 值的目录不存在。对于您所安装的 Visual St...
  7. 独立式环境与宿主式环境————《标准C语言指南》读书笔记01
  8. Tensorflow2.0与Tensorflow1.0的理解
  9. 汇编语言加法和减法详解
  10. JZOJ 5386. 【NOIP2017提高A组模拟9.23】碎