黑马JavaWeb删除操作练习
瞎猫碰死耗子勉强实现了删除操作,在此记录一下
DAO : Data Access Object(数据访问对象)
使用注解 @Select、@Delete、@Update、@Insert进行数据访问、删除、修改和增加的操作。这里进行了删除的操作
Service:服务层,调用DAO层中的方法。这里调用了void delete方法
Web层:展示和控制。这里接收id,调用service删除和显示删除成功
前两个对应的应该是MVC中的Module ,后面的Web层对丁的是View 和 Control
简单的示意图
具体实现:
BrandMapper里面添加新的删除方法:
@Delete("delete from tb_brand where id = #{id}")
void deleteById(int id);
BrandService里面添加新的删除方法:
public void deleteById(int id){
//2. 获取SqlSession
SqlSession sqlSession = factory.openSession();
//3. 获取BrandMapper
BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
//4. 调用方法
mapper.deleteById(id);
//提交事务
sqlSession.commit();
//释放资源
sqlSession.close();
}
新增delete.jsp界面,删除后显示删除成功
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>删除成功</title>
</head>
<body>
<h1>删除成功</h1>
</body>
</html>
修改brand.jsp里面对应删除的超链接为/brand-demo/deleteByIdServlet?id=${brand.id}
新增SelectByIdServlet:
package com.itheima.web;
import com.itheima.service.BrandService;
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 java.io.IOException;
@WebServlet("/deleteByIdServlet")
public class DeleteByIdServlet extends HttpServlet {
private BrandService service = new BrandService();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 接收id
String id = request.getParameter("id");
//2. 调用service删除
service.deleteById(Integer.parseInt(id));
//3. 转发到delete.jsp
request.getRequestDispatcher("/delete.jsp").forward(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
启动服务器后的界面如下:
点击删除鸿星尔克2:
回到selectAllServlet的界面,删除成功
大功告成,还有很多改进的地方,但能力有限,暂时就不修改了。
有不足之处,望大佬指出,万分感谢。