,
完整的分页查询开发思路:
1.MySQL数据库:db_book图书信息表tb_book
2.创建JavaBean封装图书信息:BookBean.java
3.创建BookDao.java用于封装商品对的数据库相关操作。
getConnection()创建数据库连接方法
find()实现商品信息的分页查询
findCount()方法:获取商品信息的总记录数,用于计算商品信息的总页数
4.创建FindServlet类,其doGet()方法对分页请求进行处理。
5.bookList.jsp获取图书信息并分页显示。
1.创建MySQL数据库db_book
在MySQL数据库db_book中创建图书信息表tb_book。
用Sql语句创建图书馆数据库
create database db_book;
用Sql语句创建图书信息表tb_book
create table tb_book(
id int not null primary key auto_increment,
name varchar(50) not null,
price double null,
bookCount int null,
author varchar(45) null
);
也可用可视化数据库开发工具:
2.创建BookBean.java
创建名称为BookBean的类,用于封装图书对象信息
package com;
public class BookBean {
private int id;// 编号
private String name;// 图书名称
private double price;// 定价
private int bookCount;// 数量
private String author;// 作者
public int getId() { return id; }
public void setId(int id) { this.id = id; }
// 省略了其他属性的Setter与Getter方法
}
3.创建BookDao类
创建BookDao.java用于封装商品对的数据库相关操作。
package com;
import java.sql.*;
import java.util.*;
import com.BookBean;
public class BookDao {
//getConnection()创建数据库连接方法
public Connection getConnection(){
Connection conn = null; // 数据库连接
try { Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db_book";
String username = "root";// 数据库用户名
String password = "root";// 数据库密码
conn = DriverManager.getConnection(url,username,password);
} catch (Exception e) { e.printStackTrace(); }
return conn;
}
//find()实现商品信息的分页查询
public List find(int page){
List list = new ArrayList();
Connection conn = getConnection();// 获取数据库连接
String sql = "select * from tb_Book order by id desc limit ?,?";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, (page - 1) * BookBean.PAGE_SIZE);
ps.setInt(2, BookBean.PAGE_SIZE);
ResultSet rs = ps.executeQuery();// 执行查询操作
while(rs.next()){// 光标向后移动,并判断是否有效
BookBean b = new BookBean();// 实例化BookBean
b.setId(rs.getInt("id"));// 对id属性赋值
b.setName(rs.getString("name"));
b.setPrice(rs.getDouble("price"));
b.setBookCount(rs.getInt("bookCount"));
b.setAuthor(rs.getString("author"));
list.add(b); // 将BookBean添加到List集合中 }
rs.close();// 关闭ResultSet
ps.close();// 关闭PreparedStatement
conn.close();// 关闭Connection
} catch (SQLException e) { e.printStackTrace(); }
return list;
}
//findCount()方法:获取商品信息的总记录数
public int findCount(){
int count = 0; // 总记录数
Connection conn = getConnection();// 获取数据库连接
String sql = "select count(*) from tb_book";
try { Statement stmt = conn.createStatement();// 创建Statement
ResultSet rs = stmt.executeQuery(sql);
if(rs.next()){ count = rs.getInt(1); }
rs.close();// 关闭ResultSet
conn.close();// 关闭Connection
} catch (SQLException e) { e.printStackTrace(); }
return count; // 返回总记录数
}
125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/1381.html