javaweb案例 选中删除和查询功能

选中删除前端jsp代码

</table>
<input type="submit"value="全选" οnclick="checkAll()">
<input type="submit"value="全不选" οnclick="checkNoAll()">
<input type="submit"value="选中删除" οnclick="XDelete()">

</body>
<script type="text/javascript">
    /*在js中获取多选框*/
    var option =document .getElementsByName("option");
    //全选
    function checkAll(){
        /*循环多选框*/
        for (let i = 0; i < option.length; i++) {
            /*checked默认选中*/
            option[i].checked=true;
        }
    }
    function checkNoAll(){
        for (let i = 0; i < option.length; i++) {
            /*checked选中*/
            option[i].checked=false;
        }
    }
    //选中删除
    function XDelete() {
        //定义一个id变量初始化值为空,用来存储选中的id
        var id="";
        //循环多选框
        for (let i = 0; i < option.length; i++) {
            //判断是否选中

            if(option[i].checked==true){
                //给选中的赋值给id 变量,并用逗号分隔
                id=id+option[i].value+","

            }
        }
        //路径
        location .href ="XDeleteServlet?id="+id;

    }
</script>
</html>

根据名称查询的前端jsp代码

<form action="SelectByNameServlet" method="get">
     根据姓名查询<input type="text" name="name" value="${b.name}">
     <input type="submit" value="查询">
 </form>

选中删除功能的后端代码

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;
在controller层
@WebServlet("/XDeleteServlet")
public class XDeleteServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //创建对象
        Goods1Service goods1Service = new Goods1Service();
        //获取页面发送过来的id
        String ids= req .getParameter("id") ;
        //查看是否可以获取到选中的数据
        //System.out.println(ids);
        goods1Service.xDelete(ids);
        //删除成功之后返回首页
        req.getRequestDispatcher("SelectAllServlet").forward(req,resp);


    }
}

在service层

public List<Goods1> selectByName(Goods1 goods1) {
        //        获取SqlSession
        SqlSession sqlSession = factory.openSession();
//        获取BrandMapper
        Goods1Mapper mapper = sqlSession.getMapper(Goods1Mapper.class);

        //        调用mapper接口中根据name查找的方法
        List<Goods1> list = mapper.selectByName(goods1);
//        提交事务
        sqlSession.commit();
//        释放资源
        sqlSession.close();
        return list;
    }
//    根据id删除多条数据的方法
    public void xDelete(String ids){
        //        获取SqlSession
        SqlSession sqlSession = factory.openSession();
//        获取BrandMapper
        Goods1Mapper mapper = sqlSession.getMapper(Goods1Mapper.class);
//        调用方法
//        查看是否可以获取到选中的数据
//        System.out.println(ids);

//        字符串分割
        String[] split = ids.split(",");
//        给分割后的id进行循环,因为你删除的可能不是数据,可能是多条,所以需要循环
        for (String str : split) {
//            给String ids转换为int类型
            int id = Integer.parseInt(str);
//            调用mapper接口中根据id删除多条数据的方法
            mapper.xDelete(id);
        }
//        提交事务
        sqlSession.commit();
//        释放资源
        sqlSession.close();
    }
在mapper层
@Delete("delete from goods1 where id = #{id};")
void xDelete(int id);

@Select("select * from goods1 where gname like concat(%,#{gname},%)")
List<Goods1> selectByName(Goods1 goods1);
经验分享 程序员 微信小程序 职场和发展