在数据库中建立表格T BOOK(BOOKID,BOOKNAME BOOKPRICE),插入一些记录。1.编写一个模糊查询图书的应用,输入图书名称的模糊资料,显示查询的图书的ID、名称和价格。要求提交给Servlet来处理。
时间: 2024-03-26 19:35:07 浏览: 175
好的,我会尽力回答你的问题。首先,建立一个名为T_BOOK的表格,包含BOOKID、BOOKNAME和BOOKPRICE这三个字段,可以使用以下SQL语句:
```
CREATE TABLE T_BOOK (
BOOKID INT PRIMARY KEY,
BOOKNAME VARCHAR(50),
BOOKPRICE DECIMAL(10, 2)
);
```
接下来,插入一些记录:
```
INSERT INTO T_BOOK (BOOKID, BOOKNAME, BOOKPRICE) VALUES
(1, 'Java编程思想', 79.99),
(2, 'Python基础教程', 59.99),
(3, '算法导论', 99.99),
(4, 'C++ Primer', 89.99),
(5, '深入浅出MySQL', 69.99);
```
接下来,我们需要编写一个模糊查询图书的应用,可以使用JDBC连接数据库,并使用PreparedStatement对象进行查询,如下所示:
```java
// 导入需要的类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
// 模糊查询图书的Servlet
public class BookServlet extends HttpServlet {
// JDBC连接数据库的信息
private String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
private String user = "root";
private String password = "123456";
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取查询关键字
String keyword = request.getParameter("keyword");
// 模糊查询SQL语句
String sql = "SELECT BOOKID, BOOKNAME, BOOKPRICE FROM T_BOOK WHERE BOOKNAME LIKE ?";
try {
// 加载JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
Connection conn = DriverManager.getConnection(url, user, password);
// 创建PreparedStatement对象
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置查询参数
pstmt.setString(1, "%" + keyword + "%");
// 执行查询操作
ResultSet rs = pstmt.executeQuery();
// 输出查询结果
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<table border=\"1\">");
out.println("<tr><th>图书编号</th><th>图书名称</th><th>图书价格</th></tr>");
while (rs.next()) {
int bookId = rs.getInt("BOOKID");
String bookName = rs.getString("BOOKNAME");
double bookPrice = rs.getDouble("BOOKPRICE");
out.println("<tr><td>" + bookId + "</td><td>" + bookName + "</td><td>" + bookPrice + "</td></tr>");
}
out.println("</table>");
out.println("</body></html>");
// 关闭数据库连接
rs.close();
pstmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
```
在这个例子中,我们通过getParameter()方法获取查询关键字,然后使用PreparedStatement对象设置查询参数,执行查询操作,并将查询结果输出到HTML页面中。
最后,将这个Java Servlet部署到Web服务器中,并通过浏览器访问即可。例如,可以访问以下URL来查询图书:
```
http://localhost:8080/book?keyword=Java
```
这个例子中,我们查询书名包含关键字"Java"的所有图书,并将查询结果输出到HTML页面中。
阅读全文