用MyEclipse写一个代码,(1) 在数据库中创建一个表:T_BOOK,包含图书ID、图书名称、图书价格。编写图书模糊查询界面,输入图书名称的模糊资料,界面下方显示图书信息。要求提交给Servlet完成。
时间: 2024-03-14 10:43:14 浏览: 128
好的,下面是使用 MyEclipse 编写的代码。
首先,我们需要在 MyEclipse 中创建一个 Web 项目。打开 MyEclipse,选择 File -> New -> Web Project,输入项目名称和目标运行时环境,点击 Next。在下一步中,选择 Web Application,并取消勾选 Generate web.xml deployment descriptor,点击 Finish。
接下来,我们需要在项目中创建一个名为 T_BOOK 的表。可以使用 MySQL Workbench 或者命令行工具来创建表。以下是使用 MySQL Workbench 创建 T_BOOK 表的示例 SQL 语句:
```
CREATE TABLE T_BOOK (
book_id INT PRIMARY KEY,
book_name VARCHAR(50),
book_price DECIMAL(10, 2)
);
```
在 MyEclipse 中,我们需要在项目的 src 目录下创建一个名为 BookServlet 的 Java 类,用于处理图书模糊查询请求。以下是一个简单的 BookServlet 的示例代码:
```
package com.example;
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 中,并返回给客户端。
接下来,我们需要在项目的 WebContent 目录下创建一个名为 index.jsp 的 JSP 页面,用于显示图书模糊查询界面。以下是一个简单的 index.jsp 的示例代码:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>
```
在这个 JSP 页面中,我们定义了一个 search 函数,在用户点击查询按钮时会被调用。该函数首先获取输入框中的关键词,然后使用 XMLHttpRequest 对象向 Servlet 发送 GET 请求,并将关键词作为参数传递。当请求成功返回后,该函数会将结果显示在 id 为 result 的 div 元素中。
最后,我们需要在项目的 WebContent 目录下创建一个名为 web.xml 的部署描述文件,用于配置 Servlet 的映射关系。以下是 web.xml 的示例代码:
```
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>BookSearch</display-name>
<servlet>
<servlet-name>BookServlet</servlet-name>
<servlet-class>com.example.BookServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BookServlet</servlet-name>
<url-pattern>/BookServlet</url-pattern>
</servlet-mapping>
</web-app>
```
在这个部署描述文件中,我们将 BookServlet 映射到 /BookServlet 路径,以便能够通过该路径访问 Servlet。
以上就是一个简单的图书模糊查询界面的实现方法。需要注意的是,这只是一个示例,实际开发中还需要考虑很多其他因素,例如 SQL 注入、分页查询、异常处理等等。
阅读全文