javaee在数据库中建立表格T BOOK(BOOKID,BOOKNAME BOOKPRICE),插入一些记录。1.编写一个模糊查询图书的应用,输入图书名称的模糊资料,显示查询的图书的ID、名称和价格。要求提交给Servlet来处理。
时间: 2024-03-23 20:43:50 浏览: 110
JavaEE查询数据库中的记录
好的,我会尽力回答您的问题。首先,您需要编写一个名为 `BookQueryServlet` 的 Servlet 类来处理客户端的请求。在这个类中,您需要实现以下方法:
```java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. 从请求参数中获取模糊查询的图书名称
String bookName = request.getParameter("bookName");
// 2. 连接数据库并执行模糊查询
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Book> bookList = new ArrayList<>();
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database_name", "your_username", "your_password");
pstmt = conn.prepareStatement("SELECT BOOKID, BOOKNAME, BOOKPRICE FROM T_BOOK WHERE BOOKNAME LIKE ?");
pstmt.setString(1, "%" + bookName + "%");
rs = pstmt.executeQuery();
while (rs.next()) {
int bookId = rs.getInt("BOOKID");
String name = rs.getString("BOOKNAME");
double price = rs.getDouble("BOOKPRICE");
Book book = new Book(bookId, name, price);
bookList.add(book);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 3. 关闭数据库连接
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 4. 将查询结果封装为 JSON 格式并发送给客户端
response.setContentType("application/json;charset=utf-8");
PrintWriter out = response.getWriter();
Gson gson = new Gson();
String json = gson.toJson(bookList);
out.write(json);
out.flush();
out.close();
}
```
在上面的代码中,我们首先从请求参数中获取模糊查询的图书名称,然后连接数据库并执行模糊查询。查询结果以 `Book` 对象的形式存储在一个列表中。最后,我们将查询结果封装为 JSON 格式并发送给客户端。
为了能够正确地处理客户端的请求,我们还需要定义 `Book` 类。这个类应该包含三个属性:`bookId`、`name` 和 `price`。可以使用以下代码来定义 `Book` 类:
```java
public class Book {
private int bookId;
private String name;
private double price;
public Book(int bookId, String name, double price) {
this.bookId = bookId;
this.name = name;
this.price = price;
}
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
```
最后,我们需要在 `web.xml` 文件中配置 `BookQueryServlet`,以便能够接收客户端的请求。可以使用以下代码来配置 `BookQueryServlet`:
```xml
<servlet>
<servlet-name>BookQueryServlet</servlet-name>
<servlet-class>com.example.BookQueryServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BookQueryServlet</servlet-name>
<url-pattern>/book/query</url-pattern>
</servlet-mapping>
```
在上面的代码中,我们将 `BookQueryServlet` 映射到了 `/book/query` 路径,这意味着客户端可以通过向这个路径发送 POST 请求来执行模糊查询。
现在,您可以启动您的 JavaEE 应用程序并使用客户端向 `/book/query` 路径发送 POST 请求来执行模糊查询。请注意,请求参数应该包含一个名为 `bookName` 的参数,其值为您要查询的图书名称的模糊资料。
阅读全文