javaee在数据库中建立表T_BOOK,它包含图书ID、图书名称,图书价格。 1、编写图书模糊查询界面,输入图书名称的模糊资料,显示查询的图书ID,名称和价格。要求提交给Servlet来处理
时间: 2024-04-01 19:32:24 浏览: 232
java实现的连接数据库及模糊查询功能示例
好的,我来为您解答。
首先,您需要在JavaEE中建立一个名为T_BOOK的数据表,包含三个字段:图书ID、图书名称和图书价格。您可以使用MySQL等关系型数据库管理系统进行建表。
接下来,您需要编写一个图书模糊查询界面,包含一个文本框和一个查询按钮。用户可以在文本框中输入图书名称的模糊资料,点击查询按钮后,将查询请求提交给Servlet进行处理。
在Servlet中,您需要从数据库中查询符合条件的图书记录,并将查询结果返回给客户端。具体的实现步骤如下:
1. 获取客户端提交的查询参数,即图书名称的模糊资料。
2. 使用JDBC连接数据库,执行SQL查询语句,获取符合条件的图书记录。
3. 将查询结果存储在一个List或者数组中。
4. 将查询结果转换为JSON格式,以便客户端可以方便地解析。
5. 将JSON格式的查询结果返回给客户端。
下面是一个简单的Servlet示例代码,供您参考:
```java
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.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
@WebServlet("/booksearch")
public class BookSearchServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String keyword = request.getParameter("keyword");
List<Book> books = searchBooks(keyword);
String json = JSON.toJSONString(books);
response.setContentType("application/json;charset=utf-8");
PrintWriter out = response.getWriter();
out.print(json);
out.flush();
out.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
private List<Book> searchBooks(String keyword) {
List<Book> books = new ArrayList<>();
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
String sql = "SELECT book_id, book_name, book_price FROM T_BOOK WHERE book_name LIKE ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, "%" + keyword + "%");
rs = stmt.executeQuery();
while (rs.next()) {
Book book = new Book();
book.setId(rs.getInt("book_id"));
book.setName(rs.getString("book_name"));
book.setPrice(rs.getDouble("book_price"));
books.add(book);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return books;
}
}
class Book {
private int id;
private String name;
private double price;
// 省略getter和setter方法
}
```
在该示例中,我们使用了FastJSON库将查询结果转换为JSON格式。请注意,为了简化示例代码,我们省略了异常处理和日志记录等细节。在实际开发中,您需要对异常进行捕获和处理,以确保系统的稳定性和安全性。
阅读全文