首页 / JAVA / Java数据库学习之分页查询
Java数据库学习之分页查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java数据库学习之分页查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2517字,纯文字阅读大概需要4分钟。
内容图文
![Java数据库学习之分页查询](/upload/InfoBanner/zyjiaocheng/506/b9f7265fc6554102a7769998e8e130fc.jpg)
pages : 具体要查询那一页
rows : 每页查询多少行
pram rows 查询多少行
总页数需用额外的方法使用SQL语句中的count关键字来计算,并对用户输入的页数进行逻辑判断。
当用户输入页数<=0;从第一页开始 当用户输入页数>=最大页数是 从最大的页数开始
DEMO1 分页查询的主方法
public List<User> selectByPage(int startpage, int rows) { sql = "select * from tb_user limit ?,?"; conn = DBUtil.getconn(); List<User> list = new ArrayList<>(); User user = null; try { PreparedStatement ps = conn.prepareStatement(sql); int start = (startpage-1)*rows; ps.setInt(1, start); ps.setInt(2, rows); ResultSet rs = ps.executeQuery(); while(rs.next()) { user = new User(rs.getString("pass"), rs.getInt("uage"), rs.getString("uname"), rs.getString("birthday"), rs.getBigDecimal("sal"), null); list.add(user); } } catch (SQLException e) { e.printStackTrace(); }finally { DBUtil.closeResources(conn, ps, null); } return list; }
DEMO2 计算可查询最大页数的方法
/** * * @param rows 为每次查询时需显示的行数 * @return countpages返回的是可查的最大页数 */ @Override public int countmaxpages(int rows) { // 计算查询表的最大页数 int countpages = 0; sql = "select count(*) from tb_user"; conn = DBUtil.getconn(); try { ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery();//结果集存储的是查询后的表的内容, // 如果只查询一个字段,则查询后的返回的结果集只有一个字段 if(rs.next()) { int lines = rs.getInt(1); countpages = (lines%rows==0)?(lines/rows):(lines/rows+1); } } catch (SQLException e) { e.printStackTrace(); } return countpages; }
DEMO3 代码优化,需要对用户输入的页数进行合法性判断。
@Override public Map<String, Object> selectByPage(int startpage, int rows) { // 对用户输入的页数合法性进行判断 // 如果用户输入的页数<=0,或用户的输入查询的行数>总行数。则设置默认从第一页开始显示 if(startpage<=0||rows>userDao.countmaxpages(rows)) { startpage = 1; } // 如果用户的输入查询的行数>最大页数(根据用户输入的查询行数和总可查询行数确定)。则设置默认从最后一页开始显示 if(startpage>userDao.countmaxpages(rows)) { startpage = userDao.countmaxpages(rows); } List<User> list = new ArrayList<>(); list = userDao.selectByPage(startpage, rows); if(list.size()==0) { map.put("code",600); map.put("msg","分页查询失败"); return map; }else { map.put("code",200); map.put("msg","分页查询成功"); list.forEach(user1->{ System.out.println(user1); }); return map; } }
Java数据库学习之分页查询
标签:优化 stack ext tst override pass color div ace
本文系统来源:https://www.cnblogs.com/klory/p/10623705.html
内容总结
以上是互联网集市为您收集整理的Java数据库学习之分页查询全部内容,希望文章能够帮你解决Java数据库学习之分页查询所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。