分页技术原理与实现(二)——Java+Oracle代码实现

分页技术原理与实现(二)——Java+Oracle代码实现

  紧接着上篇—分页技术原理与实现()——为什么要进行分页及怎么分页,本篇继续分析分页技术。上篇讲的是分页技术的简单原理与介绍,这篇深入分析一下分页技术的代码实现。

  上篇最后讲到了分页的最佳实现是在数据库层进行分页,而且不同的数据库有不同的分页实现,比如Oracle是用三层sql嵌套实现分页的、MySql是用limit关键字实现的(上篇已讲到)

  这篇以Java+Oracle为基础,讲解代码层的实现。

  就如平时我们很在分页中看到的,分页的时候返回的不仅包括查询的结果集(List),而且还包括总的页数(pageNum)、当前第几页(pageNo)等等信息,所以我们封装一个查询结果PageModel,代码如下:

 

 

  其中使用泛型是为了能使的该分页类能进行重用,比如在查询用户时可以封装User对象、在查询财务中的流向单时可以封装流向单FlowCard类。

 

  我们以查询用户为例,用户选择查询条件,首先调用Servlet获取查询参数,然后请求业务逻辑层取得分页封装结果类。业务逻辑调用Dao层取得结果集、取得中记录数封装成分页类。最后Servlet将结果设置到jsp页面显示。

  首先来讲解Servlet,代码如下:

 

 

其中User对象代码如下:

 

接着是业务逻辑层代码,代码如下:

 

其中DBUtility为数据库的连接封装类。

最后是Dao层代码实现,代码如下:

 

 

最后就是servlet将得到的结果返回给jsp页面显示出来。

注:其中DBUtility代码是封装数据库连接操作的代码,如下:

 

使用ThreadLocal是为了保证事务的一致,使得同一个线程的所有数据库操作使用同一个Connection

到此一个简单的代码实现就完成了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章