`

数据库分页三种形式

阅读更多

java项目中数据库分页有以下三种常见形式:

    1.结合数据库产品自身特点的sql语句,优点效率最高,缺点兼容性差,更换数据库产品,所有sql语句需要重新写

    以salserver为例适用于 SQL Server 2005
SELECT TOP 页大小 *
FROM
        (
        SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
        ) A
WHERE RowNumber > 页大小*(页数-1)

页大小:每页的行数;页数:第几页。使用时,请把“页大小”和“页大小*(页数-1)”替换成数字。

    2、使用数据库游标分页,优点适合所有数据库,缺点不适合大数据量查询

       page第几页,pagesize页大小

        public List<AdminDTO> findAll(int page,
            int pageSize) throws SQLException {

        List<AdminDTO> list = new ArrayList<AdminDTO>();

        //ResultSet.CONCUR_READ_ONLY 不能用结果集更新数据库中的表。
        //ResultSet.TYPE_SCROLL_INSENSITIVE 结果集的游标可以上下移动,当数据库变化时,当前结果集不变
        PreparedStatement ps = con.prepareStatement("select ad.id,ad.adminName,ad.adminPass,ad.roleId,r.rolerName from adminInfo ad,roler r where ad.roleId=r.roleId",
                ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_READ_ONLY);
        ResultSet rs = ps.executeQuery();

        int position = (page - 1) * pageSize;
        rs.absolute(position);

        int count = 0;

        while (rs.next() && count < pageSize) {
            count++;
            AdminDTO dto = new AdminDTO();
            dto.setId(rs.getInt("id"));
            dto.setAdminName(rs.getString("adminName"));
            dto.setAdminPass(rs.getString("adminPass"));
            dto.setRoleId(rs.getInt("roleId"));
            dto.setRolerName(rs.getString("rolerName"));
            list.add(dto);
        }
        return list;
    }

 

3、使用缓存,一次性从数据库查询出所有记录,存放到缓存里面,然后用list集合划分,优点简单,缺点占用系统内存,影响系统性能,故一般没人使用

0
14
分享到:
评论

相关推荐

    JqueryAjaxPage 基本java jquery无刷新数据库分页

    JqueryAjaxPage 基本java jquery无刷新数据库分页,分页形式是基本数字格式的,代码完整!欢迎大家下载..

    JSP分页代码-数据库连接池+JavaBean+JSP+SQL Server+JDBC3.0的数据库分页技术

    public Pagi()//定义构造器,初始化每页显示的主题数和数据库的连接。 { intPageSize=4; //每页显示的记录数目 db = new DB(); } //Countsql:总记录的Query字符串。[形式为select count(*) from tablename] //...

    page_dilphi数据库分页显示_

    分页原理:利用ID大于多少和SELECT TOP分页语句形式:SELECT TOP 页大小 * FROM 表名 WHERE (ID &gt;(SELECT MAX(id) FROM(SELECT TOP 页大小*页数 id FROM 表名 ORDER BY id) AS T)) ORDER BY id

    JSP连接SQL数据库实现数据分页显示

    文件以一个实例的形式完成了jsp链接到sql数据库读取出内容并实现数据分页显示,有详细注释。

    Delphi dbgrideh分页实例 带数据库.rar

    Delphi dbgrideh分页实例 带Access数据库,delphi7 关联adoquery实现dbgrid与dbgrideh的分页显示功能,提高多条数据的查询效率。分页原理:利用ID大于多少和SELECT TOP分页。  语句形式:SELECT TOP 页大小 * FROM ...

    Android 数据库开发(SQLite)

    Android上的SQLite数据库分页读取数据,实现并封装一个SQL分页表格控件,不仅支持分页还以表格的形式展示数据。主要功能包括: 1、创建数据库 2、插入示例数据 3、关闭数据库 4、分页显示数据 实现的SQL分页表格...

    我做的新闻发布(带分页的和数据库)

    学了jsp做了一个新闻发布的东西,可以发布一级标题和二级标题,还能对标题进行操作,都是用jsp的初级知识做的。其中的分页形式做了两种,有“12345”还有“上一页|下一页”

    .net 分页小插件

    (2)每页显示几条数据(跟数据库分页大小必须一样) (3)当前第几页 (4)点击分页后跳转到哪个页面 (该参数的形式为:"OrderList.aspx?page={page}") 该.net下的分页小插件特别实用,而且易懂,忘各位下载的...

    web JDBC数据库开发接口

    JDBC的结构; SQL指令操作数据库以及常用的SQL函数的使用; JDBC访问数据库的四种基本形式、事务处理; 分页显示以及如何利用JavaBean操作数据库; 访问Oracle数据库以及操作Oracle存储过程;

    基于ssm SQLserver高级分页查询,全网最优,返回形式简单,移植和扩建改动非常少

    自己封装超好用的分页高级查询基于ssm(sqlServer 数据库,底层为逆 向工程(配合我的sqlserver逆向工程使用),分页sql脚本为后添加,使用时需 要拷贝我做的分页sql,包括对应的【注意:引入这个标签 id="Select...

    MvcPagedList.Core:在ASP.NET Core MVC中轻松分页,可从数据库中以块的形式获取数据

    在ASP.NET Core MVC中轻松分页,可从数据库中以块的形式获取数据通过NuGet安装要安装MvcPagedList.Core,请在程序包管理器控制台中运行以下命令pm&gt; Install-Package MvcPagedList.Core您也可以在NuGet上查看。...

    ASP分页类 v1.1

    本人原创的ASP分页类,可快速有效的对Recordset对象进行分页处理,大大...快捷,叶子的分页类:需要设置数据库连接对象、数据库类型等等。本类,传递Recordset对象后设置一下分页大小和页面分页后URL中分页的参数即可。

    c#编程开发宝(用于C#windows和ASP.net数据库快速开发)

    4、自动生成ASPX三层结构形式代码,生成查询页面,详细内容页面。 5、软件操作简单,容易上手。 请看一下安装文件里的一分钟生成代码演示。 (一分钟生成演示文件flash的swf格式文件,10多M,已另外上传。)

    ASP分页类 v1.1.rar

    本人原创的ASP分页类,可快速有效的对Recordset对象进行分页处理,大大...快捷,叶子的分页类:需要设置数据库连接对象、数据库类型等等。本类,传递Recordset对象后设置一下分页大小和页面分页后URL中分页的参数即可。

    asp.net的通用数据库访问层源码

    支持数据库分页(需存储过程支持)。6. 支持数据缓存功能,可为每个SQL语句分别设定是否使用缓存、缓存类别(依赖数据库、绝对时间、相对时间),缓存时间。7.支持所有数据库,理论上与数据库系统无关(如果不使用...

    ASP分页类代码 v1.1.rar

    本人原创的ASP分页类,可快速有效的对Recordset对象进行分页处理,... 快捷,叶子的分页类:需要设置数据库连接对象、数据库类型等等。本类,传递Recordset对象后设置一下分页大小和页面分页后URL中分页的参数即可。

    oracle查询分页条件通用存储过程

    oracle数据库的查询分页加条件和排序的通用型存储过程,通过将表名以参数的形式传入到存储过程中做到多表通用,也可以是多表关联的sql语句 将其看作一个表也能调用该存储过程,分页只需要传与页数,和每页显示的行数...

    Oracle数据库、SQL

    4.11运算符的否定形式 9 五、 order by子句 10 5.1语法和执行顺序 10 5.2升降序 10 5.3 null值在排序中显示 10 5.4 order by后面可以跟什么 10 5.5多列排序 10 六、 单行函数的使用 11 6.1数值类型 11 6.2日期类型 ...

    原创强大的jdbc数据库操作工具类

    10.分页查询,查询多条记录,以List存Map的形式返回 public static List getPageManyMap(String sql, List args,int page,int pageSize) 源码用到的DateUtil工具类,请到...

Global site tag (gtag.js) - Google Analytics