微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javaweb分页查询oracle

Javaweb分页查询Oracle是现代互联网应用技术中必不可少的一环。在Web应用的开发中,数据库的应用频繁,而数据查询是常见的应用场景之一。但由于数据库中的数据量通常都非常庞大,如果每次都将所有数据查询出来显然会浪费大量资源,也会给系统性能带来很大的压力。而分页查询就是一种解决方法

javaweb分页查询oracle

比如,我们有一个用户列表,需要将所有的用户信息展示。但如果我们将所有用户查询出来,就会占用很多系统资源,影响整个系统的性能。这时,我们就可以使用分页查询,将全部用户分成若干页,每一页显示若干个用户信息。当需要查看某一页的数据时,再将该页的数据查询出来展示即可。

//分页查询示例
public List findUsersByPage(int currentPage,int pageSize){
    int startRow = (currentPage - 1) * pageSize + 1;
    int endRow = currentPage * pageSize;
    String sql = "SELECT * FROM USER WHERE ROWNUM >=? AND ROWNUM  users = new ArrayList();
    try(Connection conn = ConnectionUtil.getConnection();
        PreparedStatement ps = conn.prepareStatement(sql)){
        ps.setInt(1,startRow);
        ps.setInt(2,endRow);
        ResultSet rs = ps.executeQuery();
        while(rs.next()){
            User user = new User();
            user.setId(rs.getInt("ID"));
            user.setUserName(rs.getString("USER_NAME"));
            users.add(user);
        }
    }catch(sqlException e){
        e.printstacktrace();
    }
    return users;
}

在上述代码中,currentPage表示当前页码,pageSize表示每页显示用户数量查询的起始位置startRow为当前页第一个用户的位置,也就是(startRow-1)个用户之后是需要展示的数据。查询的终止位置endRow为当前页最后一个用户的位置,也就是当前页第endRow个用户查询sql语句中使用ROWNUM来限制查询结果的数量,只查询从startRow到endRow之间的数据,避免不必要的数据查询

在实现分页查询时,除了查询数据外还需要计算总页数等相关信息。总页数的计算公式为:总页数 = 总数据量 / 每页显示的数据量,如果总数据量不能被每页显示的数据量整除,则向上取整。

//计算总页数示例
public int getTotalPage(int totalDatanum,int pageSize){
    int totalPage = totalDatanum / pageSize;
    if(totalDatanum % pageSize != 0){
        totalPage++;
    }
    return totalPage;
}

在上述代码中,totalDatanum为总数据量,pageSize为每页显示的数据量。先计算总页数totalPage,如果totalDatanum不能被pageSize整除,则向上取整并加1。

除此之外,为了用户能更顺畅地使用系统,通常还需要为分页查询添加一些用户友好的操作,比如页码跳转首页、末页、上一页下一页功能

//分页查询操作示例
public void doGet(HttpServletRequest request,HttpServletResponse response)
        throws servletexception,IOException {
    int currentPage = request.getParameter("currentPage");
    int pageSize = request.getParameter("pageSize");
    List users = findUsersByPage(currentPage,pageSize);
    int totalDatanum = getTotalDatanum();
    int totalPage = getTotalPage(totalDatanum,pageSize);
    request.setAttribute("users",users);
    request.setAttribute("totalPage",totalPage);
    request.setAttribute("currentPage",currentPage);
    request.setAttribute("pageSize",pageSize);
    request.getRequestdispatcher("/user_list.jsp").forward(request,response);
}

在上述代码中,我们通过request.getParameter()方法获取了当前页码currentPage和每页显示的数据量pageSize。接着运用findUsersByPage()方法查询当前页的用户列表,再计算总数据量与总页数。最后通过setAttribute()方法查询到的结果以及相关的分页信息传递到页面中去,供页面展示。

总结来说,Javaweb分页查询Oracle是一种非常常用的技术,在互联网应用开发中也经常出现。分页查询可以避免查询全部数据带来的性能瓶颈,以及优化用户操作体验。在实现分页查询时,需要注意计算总页数、实现页码跳转用户友好的操作。掌握好分页查询技术,能够为开发者带来不少便利与提升效率。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐