//在数据库中新建一个图书表,包含book_id(主键)、图书名称book_name,图书价格book_price,出版社book_publish字段, // 然后添加几条测试数据,,编写代码连接数据库(使用数据库连接池),实现查询所有图书功能和删除图书功能(使用DBUtils),Jsp页面使用EL和JSTL
时间: 2024-03-24 19:38:51 浏览: 17
好的,我会根据您的要求进行回答,以下是我的回答:
首先,我们需要在数据库中新建一个图书表,包含book_id(主键)、图书名称book_name,图书价格book_price,出版社book_publish字段,SQL语句如下:
```
CREATE TABLE book (
book_id INT PRIMARY KEY AUTO_INCREMENT,
book_name VARCHAR(50),
book_price FLOAT,
book_publish VARCHAR(50)
);
```
接下来,我们需要添加几条测试数据,SQL语句如下:
```
INSERT INTO book(book_name, book_price, book_publish) VALUES('Java编程思想', 68.5, '机械工业出版社');
INSERT INTO book(book_name, book_price, book_publish) VALUES('Spring实战', 58.0, '人民邮电出版社');
INSERT INTO book(book_name, book_price, book_publish) VALUES('深入浅出MySQL', 49.9, '电子工业出版社');
```
然后,我们需要编写代码连接数据库(使用数据库连接池),实现查询所有图书功能和删除图书功能(使用DBUtils),Java代码如下:
```java
import java.sql.*;
import java.util.ArrayList;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import javax.sql.DataSource;
public class BookDAO {
private DataSource dataSource;
public BookDAO(DataSource dataSource) {
this.dataSource = dataSource;
}
public ArrayList<Book> getAllBooks() throws SQLException {
QueryRunner queryRunner = new QueryRunner(dataSource);
String sql = "SELECT * FROM book";
ArrayList<Book> books = (ArrayList<Book>) queryRunner.query(sql, new BeanListHandler<Book>(Book.class));
return books;
}
public void deleteBook(int bookId) throws SQLException {
QueryRunner queryRunner = new QueryRunner(dataSource);
String sql = "DELETE FROM book WHERE book_id=?";
queryRunner.update(sql, bookId);
}
}
```
其中,Book类的定义如下:
```java
public class Book {
private int bookId;
private String bookName;
private float bookPrice;
private String bookPublish;
// 省略getter和setter方法
}
```
最后,我们需要在JSP页面使用EL和JSTL展示数据和实现删除功能,JSP代码如下:
```jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>图书列表</title>
</head>
<body>
<h1>图书列表</h1>
<table border="1">
<tr>
<th>图书编号</th>
<th>图书名称</th>
<th>图书价格</th>
<th>出版社</th>
<th>操作</th>
</tr>
<c:forEach var="book" items="${books}">
<tr>
<td>${book.bookId}</td>
<td>${book.bookName}</td>
<td><fmt:formatNumber value="${book.bookPrice}" type="currency"/></td>
<td>${book.bookPublish}</td>
<td><a href="deleteBook.do?bookId=${book.bookId}">删除</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
```
其中,${books}是从Servlet中传递过来的ArrayList<Book>类型的数据,deleteBook.do是删除图书的Servlet的URL,bookId是要删除的图书的ID。在Servlet中,我们需要从请求参数中获取bookId,并调用BookDAO中的deleteBook方法实现删除图书功能。
至此,我们完成了新建图书表、添加测试数据、连接数据库、实现查询图书和删除图书功能、在JSP页面展示数据和实现删除功能的全部工作。