Java Web—-Java Web的数据库操作(三)



Java Web—-Java Web的数据库操作(三)

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java Web的数据库操作

       前面介绍了JDBC技术和JDBC API及API的使用示例,下面详细介绍JDBC在Web中的应用。

      Java Web—-Java Web的数据库操作(一)

        Java Web—-Java Web的数据库操作(二)

四、JDBC在Java Web中的应用

       通常情况下,Web程序操作数据库都是通过JDBC实现,即使目前数据库方面的开源框架有许多,但其底层实现都离不开JDBC API。

1、开发模式

       在Java Web开发中使用JDBC,应遵循MVC的设计思想,从而使Web程序拥有一定的健壮性、可扩展性。每个Java Web程序员都应该深谙MVC的设计思想,下面对其简单介绍。

       MVC(Model-View-Controller)是一种设计理念,该理念将软件分成3层结构,分别为模型层、视图层和控制层。

  •  模型层泛指程序中的业务逻辑,用于处理真正的业务操作;
  •  视图层是指程序与用户交互的界面,对用户呈现出视图,但不包括业务逻辑;
  •  控制层是对用户各种请求的分发处理,将制定的请求分配给制定的业务逻辑进行处理。

       JDBC应用于Java Web开发中,处于MVC中的模型层位置,如图所示:


      客户端通过JSP页面与程序进行交互,对于数据的增、删、改、查请求由Servlet对其进行分发处理,如Servlet接收到添加数据请求,就会分发给增加数据的JavaBean对象,而真正的数据库操作是通过JDBC封装的JavaBean进行实现。

2、分页查询

       分页查询用于在数据库量非常大,不适合将所有数据显示在一页中的情况。通过JDBC实现分页查询的方法有很多种,而且不同的数据库机制也提供了不同的分页方式,在这里介绍两种非常典型的分页方法:

       1)、通过ResultSet的光标实现分页

        ResultSet为查询结果集对象,在该对象中有一个“光标”的概念(可以参考第一篇中的JDBC API介绍),光标通过上下移动定位查询结果集中的行,从而获取数据。所以通过移动“光标”,可以设置ResultSet对象中记录的起始位置和结束为止,来实现数据的分页显示。

       2)、通过数据库机制进行分页

       很多数据库自身都提供了分页机制,如SQL Server中提供的top关键字,MySQL中提供的limit关键字,他们都可以设置数据返回的记录数。

       下面是MYSQL数据库提供的分页机制,关键代码如下:

  1. String sql = ”SELECT * FROM tb_book ORDER BY id DESC LIMIT ?,?”;
  2. PreparedStatement ps = connection.prepareStatement(sql);
  3. ps.setInt(1, (page - 1)*Book.PAGE_SIZE);//page为页数
  4. ps.setInt(2, Book.PAGE_SIZE);
  5. ResultSet rs = ps.executeQuery();

       Limit关键字能够控制查询数据结果集起始位置及返回记录的数量,它的两个参数分别用于指定查询记录的其实位置和所返回的记录数。而返回总记录数可以使用以下方法:

  1. int count = 0;
  2.               String sql = ”SELECT count(*) FROM tb_book”;
  3.               Statement statement = connection.createStatement();
  4.               ResultSet resultSet = statement.executeQuery(sql);
  5.               if (resultSet.next())
  6.                      count = resultSet.getInt(1);

       下面是一个使用MySQL数据库实现分页查询的源码,可以参考下:

 http://download.csdn.net/detail/zhai56565/5885775