(1) 在数据库中创建一个表:T_BOOK,包含图书ID、图书名称、图书价格。编写图书模糊查询界面,输入图书名称的模糊资料,界面下方显示图书信息。要求提交给Servlet完成
时间: 2024-03-14 14:43:11 浏览: 123
好的,我可以帮你解答这个问题。
首先,我们需要在数据库中创建一个名为 T_BOOK 的表,包含三个字段:book_id、book_name、book_price。可以使用如下的 SQL 语句创建表:
```
CREATE TABLE T_BOOK (
book_id INT PRIMARY KEY,
book_name VARCHAR(50),
book_price DECIMAL(10, 2)
);
```
接下来,我们需要编写一个图书模糊查询界面,可以使用 HTML 和 JavaScript 来实现。界面上需要一个输入框和一个按钮,用户可以在输入框中输入图书名称的模糊资料,点击按钮后,会向 Servlet 发送请求,查询匹配的图书信息,并将结果显示在界面下方。
以下是一个简单的图书模糊查询界面的示例代码:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>图书模糊查询</title>
<script>
function search() {
var keyword = document.getElementById("keyword").value;
var xhr = new XMLHttpRequest();
xhr.open("GET", "BookServlet?keyword=" + keyword);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var result = document.getElementById("result");
result.innerHTML = xhr.responseText;
}
};
xhr.send();
}
</script>
</head>
<body>
<h1>图书模糊查询</h1>
<p>请输入图书名称的模糊资料:</p>
<input type="text" id="keyword" size="50">
<button onclick="search()">查询</button>
<hr>
<div id="result"></div>
</body>
</html>
```
在这个界面中,我们定义了一个 search 函数,在用户点击查询按钮时会被调用。该函数首先获取输入框中的关键词,然后使用 XMLHttpRequest 对象向 Servlet 发送 GET 请求,并将关键词作为参数传递。当请求成功返回后,该函数会将结果显示在 id 为 result 的 div 元素中。
最后,我们需要编写一个 Servlet 来处理请求,并从数据库中查询匹配的图书信息。以下是一个简单的 BookServlet 的示例代码:
```
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class BookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private String jdbcUrl = "jdbc:mysql://localhost:3306/test";
private String jdbcUser = "root";
private String jdbcPassword = "root";
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String keyword = request.getParameter("keyword");
String sql = "SELECT * FROM T_BOOK WHERE book_name LIKE ?";
try (Connection conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword);
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, "%" + keyword + "%");
ResultSet rs = stmt.executeQuery();
PrintWriter out = response.getWriter();
while (rs.next()) {
int id = rs.getInt("book_id");
String name = rs.getString("book_name");
double price = rs.getDouble("book_price");
out.println(id + "\t" + name + "\t" + price + "<br>");
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
在这个 Servlet 中,我们首先从请求参数中获取关键词,然后使用 JDBC 连接到数据库,并执行一条 SQL 语句查询匹配的图书信息。查询结果会被打印到 PrintWriter 中,并返回给客户端。
以上就是一个简单的图书模糊查询界面的实现方法。需要注意的是,这只是一个示例,实际开发中还需要考虑很多其他因素,例如 SQL 注入、分页查询、异常处理等等。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![text/x-c++](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)