使用javaweb,利用数据库,实现商品的查看和添加代码
时间: 2024-03-16 07:47:54 浏览: 69
好的,以下是一个简单的JavaWeb项目示例,实现了商品的查看和添加功能,包括JSP页面、Servlet和数据库操作代码。
首先,创建一个名为"product"的数据库,包含一个名为"goods"的表,该表结构如下:
```sql
CREATE TABLE `goods` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`price` double NOT NULL,
`description` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
接下来,创建一个名为"list.jsp"的JSP页面,用于显示商品列表和添加商品按钮。
```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>
<table border="1">
<tr>
<th>ID</th>
<th>名称</th>
<th>价格</th>
<th>描述</th>
</tr>
<%
// 导入JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
// 设置数据库连接参数
String url = "jdbc:mysql://localhost:3306/product";
String username = "root";
String password = "root";
// 建立数据库连接
Connection conn = DriverManager.getConnection(url, username, password);
// 查询商品列表
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM goods";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
%>
<tr>
<td><%=rs.getInt("id")%></td>
<td><%=rs.getString("name")%></td>
<td><%=rs.getDouble("price")%></td>
<td><%=rs.getString("description")%></td>
</tr>
<%
}
// 关闭数据库连接
rs.close();
stmt.close();
conn.close();
%>
</table>
<hr/>
<h2>添加商品</h2>
<form action="add" method="post">
<label>名称:</label>
<input type="text" name="name"/><br/>
<label>价格:</label>
<input type="text" name="price"/><br/>
<label>描述:</label>
<input type="text" name="description"/><br/>
<input type="submit" value="添加"/>
</form>
</body>
</html>
```
在该页面中,使用JDBC连接数据库,并查询"goods"表中的所有数据,通过循环显示到页面上。同时,添加了一个表单用于添加商品,表单的提交地址为"add"。
接下来,创建一个名为"AddServlet.java"的Servlet,用于处理添加商品的请求。
```java
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
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 AddServlet 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"));
String description = request.getParameter("description");
// 导入JDBC驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 设置数据库连接参数
String url = "jdbc:mysql://localhost:3306/product";
String username = "root";
String password = "root";
// 建立数据库连接
Connection conn = null;
try {
conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
// 执行SQL语句
String sql = "INSERT INTO goods(name, price, description) VALUES(?, ?, ?)";
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setDouble(2, price);
pstmt.setString(3, description);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭数据库连接
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 重定向到商品列表页面
response.sendRedirect("list.jsp");
}
}
```
在该Servlet中,首先获取请求参数,然后使用JDBC连接数据库,执行INSERT语句添加商品。最后,通过response.sendRedirect()方法重定向到商品列表页面。
最后,在Web项目的web.xml文件中,添加Servlet的配置信息。
```xml
<servlet>
<servlet-name>AddServlet</servlet-name>
<servlet-class>AddServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddServlet</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>
```
以上就是一个简单的JavaWeb项目,实现了商品的查看和添加功能。当然,这只是一个示例,实际应用中还需要考虑很多方面,如数据校验、异常处理、安全性等等。
阅读全文