servlet获取商品ID删除sql数据库里的一行记录ID不是主键
时间: 2023-09-13 22:09:46 浏览: 38
如果商品的ID不是主键,那么你需要使用其他方式来删除对应的记录。比如可以使用SQL语句中的WHERE子句来指定删除的条件。
以下是一个简单的例子,假设你的商品表格叫做"products",其中有一个名为"product_id"的列表示商品的ID。现在,你需要删除ID为100的商品记录,可以使用如下的SQL语句:
```sql
DELETE FROM products WHERE product_id = 100;
```
这条语句将会删除"products"表格中所有"product_id"等于100的记录。在Servlet中,你可以使用Java JDBC来执行这条语句,具体代码如下:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class DeleteProductServlet extends HttpServlet {
private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "123456";
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int productId = Integer.parseInt(request.getParameter("productId"));
try {
//1. 加载JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
//2. 建立数据库连接
Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
//3. 创建PreparedStatement对象并设置参数
String sql = "DELETE FROM products WHERE product_id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, productId);
//4. 执行SQL语句并获取结果
pstmt.executeUpdate();
//5. 关闭JDBC对象
pstmt.close();
conn.close();
//6. 返回响应结果
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h2>商品已经成功删除!</h2>");
out.println("</body></html>");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
这个Servlet将会从请求参数中获取商品ID,然后使用JDBC来连接MySQL数据库,执行DELETE语句来删除对应的记录。最后,返回一个简单的HTML响应来告诉用户商品已经成功删除。