在线直播源码,java数据分页几种方式
在线直播源码,java数据分页几种方式
1.使用PageUtils
1 | <br>Service:<br> /**<br> * 分页查询<br> *<br> * @param params 查询条件<br> * @return PageUtils<br> */ <br> PageUtils queryPage(Map<String, Object> params);<br> <br>ServiceImpl:<br> Page<数据库对象实体> page = this.selectPage(<br> new Query<数据库对象实体>(params).getPage(),<br> new EntityWrapper<数据库对象实体>()<br> //MybatisPlus sql语句<br> .eq(字段,"匹配值")<br> //具体用法详情百度<br> .orderBy(按照排序的数据库字段, true)<br> );<br> return new PageUtils(page);<br> |
2.使用Page
1 | <br>Service:<br> /**<br> * 分页查询<br> * @param params 查询条件<br> * @return <br> */ <br> Page<数据库对象实体> queryPage(Map<String, Object> params);<br> <br>ServiceImpl:<br> Page<数据库对象实体> page = new Page<>(Public.mapTo(params.get( "page" ), 1), Public.mapTo(params.get( "pageSize" ), 10));<br> //可以手写sql,提高sql的灵活性(但是题主人懒,还是喜欢使用 MysqlbatisPlus 那种方式),但是可以锻炼你的SQL书写能力<br> List<数据库对象实体> list = Dao.方法名(page, params);<br> Page<数据库对象实体> pageInfo = page.setRecords(list);<br> return pageInfo;<br> <br>Dao:<br>List<数据库对象实体> 方法名 (Pagination page,Map<String, Object> map);<br>//具体的SQL就不写了<br> |
3.Jpa分页
需要一个分页类 Page4Navigator
1 | Page<T> pageFromJPA;<br> int navigatePages;<br> <br> int totalPages;<br> <br> int number;<br> <br> long totalElements;<br> <br> int size;<br> <br> int numberOfElements;<br> <br> List<T> content;<br> <br> boolean isHasContent;<br> <br> boolean first;<br> <br> boolean last;<br> <br> boolean isHasNext;<br> <br> boolean isHasPrevious;<br> <br> int[] navigatepageNums;<br> <br> public Page4Navigator() {<br> //这个空的分页是为了 Redis 从 json格式转换为 Page4Navigator 对象而专门提供的<br> }<br> <br> public Page4Navigator(Page<T> pageFromJPA,int navigatePages) {<br> this.pageFromJPA = pageFromJPA;<br> this.navigatePages = navigatePages;<br> <br> totalPages = pageFromJPA.getTotalPages();<br> <br> number = pageFromJPA.getNumber() ;<br> <br> totalElements = pageFromJPA.getTotalElements();<br> <br> size = pageFromJPA.getSize();<br> <br> numberOfElements = pageFromJPA.getNumberOfElements();<br> <br> content = pageFromJPA.getContent();<br> <br> isHasContent = pageFromJPA.hasContent();<br> <br> first = pageFromJPA.isFirst();<br> <br> last = pageFromJPA.isLast();<br> <br> isHasNext = pageFromJPA.hasNext();<br> <br> isHasPrevious = pageFromJPA.hasPrevious(); <br> <br> calcNavigatepageNums();<br> <br> }<br> <br> private void calcNavigatepageNums() {<br> int navigatepageNums[];<br> int totalPages = getTotalPages();<br> int num = getNumber();<br> //当总页数小于或等于导航页码数时<br> if (totalPages <= navigatePages) {<br> navigatepageNums = new int[totalPages];<br> for (int i = 0; i < totalPages; i++) {<br> navigatepageNums[i] = i + 1;<br> }<br> } else { //当总页数大于导航页码数时<br> navigatepageNums = new int[navigatePages];<br> int startNum = num - navigatePages / 2;<br> int endNum = num + navigatePages / 2;<br> <br> if (startNum < 1) {<br> startNum = 1;<br> //(最前navigatePages页<br> for (int i = 0; i < navigatePages; i++) {<br> navigatepageNums[i] = startNum++;<br> }<br> } else if (endNum > totalPages) {<br> endNum = totalPages;<br> //最后navigatePages页<br> for (int i = navigatePages - 1; i >= 0; i--) {<br> navigatepageNums[i] = endNum--;<br> }<br> } else {<br> //所有中间页<br> for (int i = 0; i < navigatePages; i++) {<br> navigatepageNums[i] = startNum++;<br> }<br> }<br> } <br> this.navigatepageNums = navigatepageNums;<br> } |
以上就是 在线直播源码,java数据分页几种方式,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-05-09 android短视频开发,后台各个管理页面的分页管理
2022-05-09 直播平台搭建,全局过滤器(以时间过滤器为例)
2022-05-09 app直播源代码,Banner广告图片轮播控件