用MVC模式实现真分页

·我们在之前代码上实现一个搜索框

       输入查询关键字:<input type="text" name="kw" value="<%=keyWord.equals("null")?"":keyWord%>">

       <input type="submit" value="查询">

在这段代码中,我们将value值用一个判断语句写出,是为了在下一页是,搜索框的内容被保存下来。

·为了实现分页组件的重用,我们将分页显示的,翻页按钮和搜索框封装成一个jsp页面,并设置一个status值,当值为searchAllsearchLike时,分别表示,搜索全部的值和关键字搜索,即split_page.jsp

其中要注意的是:在查询的结果集为空时,应该不显示上一页下一页按钮,否则点击会出错,在这里,我们用总记录数allRecorders来判断(具体代码见附件)。

·至于数据库操作和实体的分装,我们分别用DAOjavaBean实现,设计DataBaseConnection.javaPerson.javaPersonDAO.javaPersonDAOImpl.javaDAOFactory.java五个类(其中PersonDAO.java是接口)。

1.其中DataBeaseConnection中实现,数据库的连接操作,在构造器中实现数据库连接,用getConnection()返回一个Connectionclose()实现关闭操作。

2.Person类是一个javaBean,不多说。

3.PersonDAO定义了一个,对Person表进行操作的接口,有:

       // 得到全部的记录数

       public int getAllCount() throws Exception ;

       // 得到模糊查询的记录数

       public int getByLikeCount(String cond) throws Exception ;

       // 得到全部的记录

       public List queryAll(int currentPage,int lineSize) throws Exception ;

       // 模糊查询记录

       public List queryByLike(String cond,int currentPage,int lineSize) throws Exception ;

四个方法。

4.PersonDAOImplPersonDAO的实现,在这里我们通过DBMSSQL语句实现了真分页

例如关键字搜索,sql语句为:

SELECT id,uid,name,password FROM person WHERE uid LIKE ? OR name LIKE ? limit "+(currentPage-1)*lineSize+","+lineSize

Limit + 查询开始记录号(从0开始) + 查询的记录条数,其中,currentPagelineSize是传递过来的参数。

查询所有的记录数为:SELECT id,uid,name,password FROM person limit "+(currentPage-1)*lineSize+","+lineSize

5.DAOFactory是一个工厂类,只有一个方法,

public static PersonDAO getPersonDAOInstance()

       {

              return new PersonDAOImpl() ;

       }

返回一个接口

·关键的是对这些类的调用,我们不再放在jsp中,而是用一个servlet去处理,servlet通过session中设置的参数与jsp联系起来,通常像这种查询,我们将List添加到session中,再在jsp中获得,从而实现遍历与显示。这就实现了MVC模式,将jsp中的java代码减到最少。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值