jsp+servlet+mysql超市数量清单代码
时间: 2023-12-12 10:02:43 浏览: 97
jsp+servlet+mysql购物商城源码
5星 · 资源好评率100%
以下是一个简单的 JSP + Servlet + MySQL 超市数量清单代码示例:
1. 创建数据库和表
首先,需要在 MySQL 数据库中创建一个名为 `supermarket` 的数据库,并在其中创建一个名为 `items` 的表,表结构如下:
```
CREATE TABLE items (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price DOUBLE NOT NULL,
quantity INT(11) NOT NULL,
PRIMARY KEY (id)
);
```
2. 编写 JSP 页面
在 `WebContent` 目录下创建一个名为 `index.jsp` 的文件,代码如下:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>超市数量清单</title>
</head>
<body>
<h1>超市数量清单</h1>
<form action="AddItemServlet" method="post">
<label>商品名称:</label>
<input type="text" name="name"><br>
<label>商品价格:</label>
<input type="text" name="price"><br>
<label>商品数量:</label>
<input type="text" name="quantity"><br>
<input type="submit" value="添加商品">
</form>
<hr>
<table border="1">
<tr>
<th>ID</th>
<th>名称</th>
<th>价格</th>
<th>数量</th>
</tr>
<%
// 获取所有商品信息
List<Item> items = ItemDAO.getAllItems();
// 遍历所有商品,显示在表格中
for (Item item : items) {
%>
<tr>
<td><%= item.getId() %></td>
<td><%= item.getName() %></td>
<td><%= item.getPrice() %></td>
<td><%= item.getQuantity() %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
```
该页面包含一个表单,用于添加商品信息,同时也显示了所有已添加的商品信息。
3. 编写 Servlet
在 `src` 目录下创建一个名为 `AddItemServlet.java` 的文件,代码如下:
```
package com.example.servlet;
import java.io.IOException;
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.example.dao.ItemDAO;
import com.example.model.Item;
@WebServlet("/AddItemServlet")
public class AddItemServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取表单提交的参数
String name = request.getParameter("name");
double price = Double.parseDouble(request.getParameter("price"));
int quantity = Integer.parseInt(request.getParameter("quantity"));
// 创建 Item 对象,保存到数据库
Item item = new Item(name, price, quantity);
ItemDAO.addItem(item);
// 重定向到首页
response.sendRedirect(request.getContextPath() + "/index.jsp");
}
}
```
该 Servlet 接收表单提交的参数,创建一个 `Item` 对象,并保存到数据库中。最后,重定向到首页。
4. 编写 DAO 类
在 `src` 目录下创建一个名为 `ItemDAO.java` 的文件,代码如下:
```
package com.example.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.example.model.Item;
public class ItemDAO {
private static final String URL = "jdbc:mysql://localhost:3306/supermarket?useSSL=false&serverTimezone=UTC";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
// 添加商品信息
public static void addItem(Item item) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement ps = conn.prepareStatement("INSERT INTO items (name, price, quantity) VALUES (?, ?, ?)")) {
ps.setString(1, item.getName());
ps.setDouble(2, item.getPrice());
ps.setInt(3, item.getQuantity());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 获取所有商品信息
public static List<Item> getAllItems() {
List<Item> items = new ArrayList<>();
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try (Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement ps = conn.prepareStatement("SELECT * FROM items");
ResultSet rs = ps.executeQuery()) {
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
double price = rs.getDouble("price");
int quantity = rs.getInt("quantity");
Item item = new Item(id, name, price, quantity);
items.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}
return items;
}
}
```
该 DAO 类提供了两个方法:`addItem()` 用于添加商品信息,`getAllItems()` 用于获取所有商品信息。
5. 编写 Model 类
在 `src` 目录下创建一个名为 `Item.java` 的文件,代码如下:
```
package com.example.model;
public class Item {
private int id;
private String name;
private double price;
private int quantity;
// 无参构造函数
public Item() {
}
// 带参构造函数
public Item(String name, double price, int quantity) {
this.name = name;
this.price = price;
this.quantity = quantity;
}
// 带参构造函数
public Item(int id, String name, double price, int quantity) {
this.id = id;
this.name = name;
this.price = price;
this.quantity = quantity;
}
// getter 和 setter 方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
}
```
该 Model 类定义了一个 `Item` 对象,包含了商品的 ID、名称、价格和数量。同时提供了无参和带参构造函数,以及 getter 和 setter 方法。
至此,JSP + Servlet + MySQL 超市数量清单代码示例就完成了,可以通过运行该项目并访问 `http://localhost:8080/项目名/index.jsp` 来使用。
阅读全文