首页 > 编程知识 正文

java分页查询原理思路,java中对数据库进行分页查询

时间:2023-05-06 14:37:41 阅读:62176 作者:1061

1 .基本构想

我现阶段的分页查询实现基于sql语句。

选择* from user where id limit a,b

构建相应的a和b,就可以检索想要的数据并显示在页面上。 重要的是,要构建当前页数,必须封装javaBean并存储有关分页的基本属性。

这只需要在服务层计算想要的页数,封装基本信息,并在查询中显示在前端即可。

2 .具体实现

定义JavaBean

公共@数据

classpagebeanimplementsserializable {

私有集成页; //当前页数

私有积分器限制;//每页显示数

私有integer总页面; //总页数

私有integer总体; //总记录数

私有列表页面记录; //当前页面的数据集合

私有列表页; 返回用于显示索引页上一页、下一页的页数的集合

}

2 .控制器:

pagebean pagebean=question service.question list (page );

返回一个QuestionDTO类型的JavaBean,其中包含分页符信息和要在当前页上显示的数据集。 关于队列待办事宜:

公共@数据

类问题dto {

私有integer id;

私有字符串标题;

私有字符串描述;

私密长GMT创建;

私密长GMT修改;

私有集成器创建器;

私有集成器身份验证计数;

私有集成器视图计数;

隐私积分仪like count;

私有字符串标签;

隐私用户用户;

}

3 .调用的服务:

//检查所有问题并回发到索引页

publicpagebeanquestionlist (integer page ) {

列表列表=new ArrayList (;

PageBean pagesinfo=new PageBean (;

//1 .设置limit

集成极限=5;

pagesinfo.setlimit(limit );

//2 .设定总记录数

integer total=question mapper.fing count (;

pages info.set total (总);

//3 .设置总页数

集成页;

if (总限制==0) {

totalPage=total/limit;

}else{

总页面=总/极限1;

}

pages info.set total page (总页);

//4 .设置页数集合

列表页=new ArrayList (;

for(intI=1; I

pages.add(I;

}

pagesinfo.setpages(pages;

//5 .设置每页的数据集

list questions=question mapper.question list (page,limit );

for (question question : questions ) {

useruser=user mapper.find byid (question.getcreatar () );

questiondtoquestiondto=newquestiondto (;

beanutils.copy properties (question,questionDTO );

questionDTO.setuser(user );

list.add(questionDTO );

}

pages info.setpage recode (列表;

返回页面信息;

}

在服务层中为PageBean属性赋值并查询相关数据。 如果对上述代码的步骤5有疑问,请参阅如何实现多表联合查询的简单替代。

4 .映射器

//检查所有问题并返回索引页

@ select (select * fromquestionwhereidlimit # { page },#{limit} ) )

listquestionlist(integerpage,Integer limit;

//查询总问题数

@ select (选择计数) id (来自队列) ) )。

集成电路fing count (;

这些完成后,将查询中的数据封装在控制器的PageBean中。 返回前端显示就完成了。

5 .前端代码

«

»

循环取出page。

另一种方法是使用在mybatis-generator中生成的寻呼查询方法

1 .新的generatorConfig.xml配置文件‘

/p

public '-//my batis.org//dtdmybatisgeneratorconfiguration 1.0//en '

' http://my batis.org/dtd/my batis-generator-config _1_0. dtd '

连接URL=' JDBC : MySQL ://localhost 33603306/community? xfdsp=utf-8serverTimezone=UTC '

userId='root '

password='root '

注:配置文件的名称固定为generatorConfig.xml

2 .在控制台上运行命令mvn-dmybatis.generator.overwrite=truemybatis-generator 3360 generate以生成具有分页查询方法的代码

注意: overwrite=true可以覆盖上次生成的代码,并根据实际需要进行调整。

3 .范例:

questionexampleexample=newquestionexample (;

example.createCriteria ()。

安卓(id;

列表questions=question mapper.selectbyexamplewithrowbounds (example,newrowbounds ) page,limit );

设置页数和每页显示的数量,可以返回相应的结果集。 同样也可以分页。

继续更新~~~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。