💡💡💡javaweb之JDBC技术基础训练之管理系统全集🙌🙌🙌👇👇👇
添加链接描述javaweb之JDBC技术基础训练—图书管理系统:数据准备、可能遇到的问题的解决方法🤟
javaweb之JDBC技术基础训练二图书管理系统:从数据库插入数据功能实现🤟
javaweb之JDBC技术基础训练三图书管理系统:查询数据功能实现🤟
javaweb之JDBC技术基础训练四图书管理系统:修改功能的实现🤟
javaweb之JDBC技术基础训练五图书管理系统:删除数据项🤟
修改数据和与添加数据很类似,只不过现在用SQL的“update”语句,在这里以修改图书的数量为例,学会后其他的都是一样的,在修改图书的时候,我们除了要关注主要要修改的那个值,别忘了还要加上图书的id属性,因为修改图书数量的时候需要明确指定图书的id作为修改的条件,否则,就会不小心修改所有的图书信息记录啦
在book_List添加修改按钮
<%@ page import="com.xmonster.bean.Book" %>
<%@ page import="java.util.List" %><%--
Created by IntelliJ IDEA.
User: lenovo
Date: 2021/10/31
Time: 23:25
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>book_List</title>
</head>
<body>
<table align="center" width="500" border="1">
<tr>
<td align="center" colspan="2">
<h2>所有图书信息</h2>
</td>
</tr>
<tr align="center">
<td><b>ID</b></td>
<td><b>图书名称</b></td>
<td><b>价格</b></td>
<td><b>数量</b></td>
<td><b>作者</b></td>
</tr>
<%
//获取所有图书的信息
List<Book> list = (List<Book>) request.getAttribute("list");
//判断集合是否为空、是否有效
if(list == null || list.size()<1){
out.println("抱歉,没有检测到数据!");
}else{
for(Book book:list){
%>
<tr align="center">
<td><%=book.getId()%></td>
<td><%=book.getName()%></td>
<td><%=book.getPrice()%></td>
<td><%=book.getBookCount()%></td>
<td><%=book.getAuthor()%></td>
<td align="center">
<form action="UpdateServlet" method="post" onsubmit="return check(this);">
<input type="hidden" name="id" value="<%=book.getId()%>">
<input type="text" name="bookCount" size="3">
<input type="submit" value="修 改">
</form>
</td>
</tr>
<%
}
}
%>
</table>
</body>
</html>
UpdateServlet
在这里话,不需要Get方法了,由表单提交类型为post,所以在这里我们就直接写doPost方法即可,这里写的比较简单,因为我们只修改一个变量
package com.xmonster.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
public class UpdateServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id = Integer.valueOf(req.getParameter("id"));
int bookCount = Integer.valueOf(req.getParameter("bookCount"));
// HttpServletRequest所接受的参数值类型为String类型,而图书id和图书数量都为int类型
// 所以在这里做了转型的操作
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
String username="root";
String password="123456";
Connection connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
String sql = "update tb_book set bookCount=? where id=?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, bookCount);
ps.setInt(2, id);
ps.executeUpdate();
ps.close();
connection.close();
}catch (Exception e){
e.printStackTrace();
}
resp.sendRedirect("FindServlet");
// 将已经修改好的值 重定向到FindServlet
}
}
index.jsp
这里就写的很简单啦
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Index</title>
</head>
<body>
<a href="FindServlet">点击修改信息</a>
</body>
</html>
测试
假如我想要修改Web的数量为30
修改后去数据库查看结果:
可以看到已经成功修改