在Java中如何用三层架构写分页查询,求助大神

解决方案 »

  1.   

    看你想怎么用了,是调用已经写好的包,还是想自己写一个。调用包就不说了,我来说一下自己写的吧,一般我们使用的mvc(模型—视图—控制器)模式不外乎两大主流框架ssm,ssh(springboot比较流行但是我没用过)。这就是三层架构。三层架构是什么我就不多说了 楼主应该很了解了。现在进入正题:当我们点击分页按钮(也就是视图)时,会执行相应的方法(在控制器中执行),而控制器会根据相应的方法去调用模型中相应的sql语句执行,那我们只要在模型中写相应的分页语句(用limit关键字,也可以用别的方法)就好了。当然你还要在控制器中设定好页数,以及每页的大小,这些都是要传入到模型里作为参数用的,模型通过和数据库交互执行模型自主拼好的sql语句,返回回来你需要的哪个段的数据,再把这些数据通过模型回传到控制器,控制器回传到视图进行显示。整个下来就是这个过程。当然显示的页数你要记得加一(这个无关紧要,一般的bootstrap控件里都有你可以直接用)。
      

  2.   

    简单说就是:
    1.视图——操作分页按钮,发送分页请求。
    2.控制器——收到分页请求,执行并调用模型的方法(其中传入到模型的参数有当前页数,每页多少条数等等)。
    3.模型——根据传入的参数拼写sql语句,并和数据库进行交互执行已经拼好的sql语句,并接收sql执行后的数据,再把数据传回给控制器。
    4.控制器——接收模型传回的数据,必要时进行一些数据的处理(变个类型啥的),然后回传给视图。
    5.视图——接收控制器传回的数据进行显示。
      

  3.   

    最简单的:数据少的话,全量查询,由前台表格框架负责分页。
    一般的:自己对sql进行分页处理,配合分页工具类在后台完成。
    最优的:只写正常的不分页的sql,靠框架自己添加分页用的语句。但是可能涉及到修改持久层框架的底层源码。
      

  4.   

    分页算法在控制器中写 一般的处理的方法都写在控制器,视图说白了就是用户看到了东西,而模型是拼写sql和接收数据库数据的地方,控制器是写算法,变换类型等等的地方。