@Override public List<Book> selectAll() throws SQLException { String sql ="select * from book"; List<Book> list = qr.query(DBUtil.getConnection(),sql,new BeanListHandler<Book>(Book.class)); return list; }
时间: 2024-04-02 08:37:01 浏览: 16
这段代码是一个Java方法,用于从数据库中查询所有的书籍信息。selectAll方法没有参数,使用JDBC操作数据库,执行SQL语句,将查询到的Book对象封装成一个List集合返回。具体来说,这段代码使用了一个名为"qr"的QueryRunner对象,它是Apache Commons DbUtils库提供的一个简化JDBC操作的工具类。selectAll方法使用了QueryRunner对象的query方法,该方法接收一个Connection对象、一个SQL语句、查询结果集处理器和一些参数,然后执行SQL语句并返回查询结果。
在这段代码中,SQL语句是"select * from book",表示查询所有的书籍信息。这个SQL语句不需要使用占位符,因为它不需要传递参数。
最后,selectAll方法使用BeanListHandler类将结果集封装成一个List集合,并将它返回。里面用到了Java的泛型特性,将List中的元素类型指定为Book类,表示查询结果是一组Book对象。由于查询结果可能有多条记录,所以使用了BeanListHandler类。
相关问题
@Override public List<Book> selectAll(int currentPage, int pageSize) throws SQLException { String sql = "select * from book limit ?,?"; List<Book> list = qr.query(DBUtil.getConnection(),sql,new BeanListHandler<>(Book.class),((currentPage-1)*pageSize),pageSize); return list; }
这段代码是一个Java方法,用于从数据库中查询所有的书籍信息,并且支持分页查询。selectAll方法接收两个整型参数currentPage和pageSize作为参数,表示当前页码和每页显示的记录数。然后使用JDBC操作数据库,执行SQL语句,将查询到的Book对象封装成一个List集合返回。具体来说,这段代码使用了一个名为"qr"的QueryRunner对象,它是Apache Commons DbUtils库提供的一个简化JDBC操作的工具类。selectAll方法使用了QueryRunner对象的query方法,该方法接收一个Connection对象、一个SQL语句、查询结果集处理器和一些参数,然后执行SQL语句并返回查询结果。
在这段代码中,SQL语句是"select * from book limit ?,?",其中"?"是占位符,代表后面的参数。这个SQL语句用于查询所有的书籍信息,并且支持分页查询。"limit"关键字用于限制查询结果的数量,第一个"?"表示偏移量,表示从第几条记录开始查询,第二个"?"表示查询数量,表示查询多少条记录。
最后,selectAll方法使用Java的计算方式将currentPage和pageSize转换成偏移量和查询数量,并将它们作为参数传递给query方法。由于查询结果可能有多条记录,所以使用了BeanListHandler类将结果集封装成一个List集合,并将它返回。里面用到了Java的泛型特性,将List中的元素类型指定为Book类,表示查询结果是一组Book对象。
使用jspModel2实现显示所有图书信息,已知数据库名为db_book,用户名和密码均为aa,图书数据表为tb_test,图书包含书名、作者和价格信息,具体要求如下:(1)BookDao中的queryAll方法,用与获取所有图书信息,返回结果为ArrayList<Book>; (2)Servlet文件ShowAllBooksServlet满用BookDao中的queryAll方法获数所有图书信息,并将信息保存到session中,ShowAllBooksServlet文件跳转到bookList.jsp (3)bookList.jsp文件,使用forEach标签获取图书信息,并显示,运行效果如下图所示 请给出BookDao、ShowAllBooksServlet、bookList.jsp三个文件的核心代码。
BookDao:public class BookDao {
private static final String DB_URL = "jdbc:mysql://localhost:3306/db_book";
private static final String USER_NAME = "aa";
private static final String PASSWORD = "aa"; public ArrayList<Book> queryAll() {
ArrayList<Book> bookList = new ArrayList<Book>();
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(DB_URL, USER_NAME, PASSWORD); String sql = "SELECT * FROM tb_test";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
String name = resultSet.getString("name");
String author = resultSet.getString("author");
double price = resultSet.getDouble("price");
Book book = new Book(name, author, price);
bookList.add(book);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return bookList;
}
}ShowAllBooksServlet:public class ShowAllBooksServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
BookDao bookDao = new BookDao();
ArrayList<Book> bookList = bookDao.queryAll();
req.getSession().setAttribute("bookList", bookList);
req.getRequestDispatcher("bookList.jsp").forward(req, resp);
}
}bookList.jsp:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>图书列表</title>
</head>
<body>
<h3>图书列表</h3>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th>书名</th>
<th>作者</th>
<th>价格</th>
</tr>
<c:forEach items="${session.bookList}" var="book">
<tr>
<td>${book.name}</td>
<td>${book.author}</td>
<td>${book.price}</td>
</tr>
</c:forEach>
</table>
</body>
</html>