3. 点击删除按钮从数据库中删除数据
-
点击按钮调用 js 中的 delFruit(fid) 方法,需要传入 fid
-
调用 js 中的方法以及传入参数的 thymeleaf 语法
-
<!-- 方法1 字符串拼接 易错不推荐使用 --> th:onclick="'delFruit('+${fruit.fid}+')'"/> <!-- 方法2 字符串两侧加| = 识别字符串中的 thymeleaf 语法 ${...} --> th:onclick="|delFruit(${fruit.fid})|"/>
-
在 js 的 delFruit 方法中向 del.do 映射的 DelServlet 发送请求,默认为 get 请求,同时传入 fid
-
function delFruit(fid){ if(confirm('是否确认删除?')){ window.location.href='del.do?fid='+fid; } }
-
-
在 DelServlet 中重写 doGet 处理请求,调用 FruitDAOImpl 中实现的 delFruit 方法
-
private FruitDAO fruitDAO = new FruitDAOImpl(); @Override public void doGet(HttpServletRequest request , HttpServletResponse response)throws IOException, ServletException { String fidStr = request.getParameter("fid"); if(StringUtil.isNotEmpty(fidStr)){ int fid = Integer.parseInt(fidStr); Fruit fruit = fruitDAO.getFruitByFid(fid); request.setAttribute("fruit",fruit); super.processTemplate("edit",request,response); } }
-
在 FruitDAOImpl 实现的 delFruit 方法中,也只需调用父类 BaseDAO 中封装好的 executeUpdate 方法将 SQL 语句结构和参数传入即可
-
public void delFruit(Integer fid) { super.executeUpdate("delete from t_fruit where fid = ? " , fid) ; }
-
4. 添加新记录
-
首页 index.html 增加跳转至添加记录页面 add.html 的超链接
-
<a th:href="@{/add.html}" style="border:0px solid blue;margin-bottom:4px;">添加新库存记录</a>
-
-
add.html 提交一个填写各种信息的表单,发送请求到 add.do 映射到 AddServlet
-
<form action="add.do" method="post"> ... </form>
-
-
AddServlet 中重写 doPost方法
-
根据 request 传入的值,创建 Fruit 对象
-
将 Fruit 对象作为参数传入调用的 fruitDAO 类的 .addFruit(fruit) 方法
-
private FruitDAO fruitDAO = new FruitDAOImpl(); @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String fname = request.getParameter("fname"); Integer price = Integer.parseInt(request.getParameter("price")) ; Integer fcount = Integer.parseInt(request.getParameter("fcount")); String remark = request.getParameter("remark"); Fruit fruit = new Fruit(0,fname , price , fcount , remark ) ; fruitDAO.addFruit(fruit); response.sendRedirect("index"); }
-
最后客户端重定向,添加完成后自动跳转到首页
-
-
fruitDAO 中的 addFruit() 方法通过调用父类 BaseDAO 的方法实现
-
将SQL语句结构和占位符对应值作为参数传入父类 BaseDAO 封装好的 executeUpdate 方法即可完成数据库操作
-
@Override public void addFruit(Fruit fruit) { String sql = "insert into t_fruit values(0,?,?,?,?)"; super.executeUpdate(sql,fruit.getFname(),fruit.getPrice(),fruit.getFcount(),fruit.getRemark()); }
-