mybatis用mysql进行批量删除_Mybatis实现数据库数据批量删除

本文介绍了如何使用Mybatis框架在Java中实现在MySQL数据库中进行批量删除记录的操作。详细步骤包括:前端jsp页面选择要删除的记录,通过jQuery处理全选或取消全选,servlet层接收并转换id数组,service层使用数据库连接池和SqlSession执行批量删除,最后DAO层通过Mybatis接口和XML配置文件完成具体删除操作。
摘要由CSDN通过智能技术生成

使用mybatis将数据库中的记录

1.前台jsp页面,将要删除的记录选中,通过将记录的id对记录进行区别,请求方法为post;

2.使用jQuery,js对页面进行全选,或全部清除选择。

3.servlet控制层,通过req对象获取id,然后将存放id数组进行参数类型转换,转为int[];

4.sevice服务层,使用数据库连接池,获取SqlSession实例对象,由session对象获取Mybatis框架创建的接口的实例,通过声明接口中处理批量删除的方法,配置接口对应的xml配置文件。

1,前台jsp页面

pageEncoding="UTF-8"%>

商品列表

$(function(){

$("#checkAll").click(function(){

var ckd=this.checked;

if(ckd)

$("input[name='checkedPrdId']").prop("checked",true);

else

$("input[name='checkedPrdId']").removeProp("checked");

});

});

table,table td{

border:1px solid black;

}

table {

border-collapse: collapse;

}

table td{

width: 200px;

height: 20px;

}

prdList

${msg}

商品编号商品类别商品名称商品价格商品描述

${prd.prdId}${prd.typeId}${prd.prdName}${prd.price}${prd.desc}

2.servlet类的post方法的实现

package com.xixi.demo.servlet;

import java.io.IOException;

import java.util.HashMap;

import java.util.List;

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 com.sun.javafx.collections.MappingChange.Map;

import com.xixi.demo.common.Constants;

import com.xixi.demo.service.ProductService;

import com.xixi.demo.service.ProductTypeService;

import com.xixi.demo.vo.ProductInfo;

import com.xixi.demo.vo.ProductTypeInfo;

@WebServlet(urlPatterns="/prdServlet")

public class ProductServlet extends BaseServlet {

private ProductService productService = new ProductService();

private ProductTypeService productTypeService = new ProductTypeService();

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

req.setCharacterEncoding("utf-8");

String flag = req.getParameter("flag");

if("add".equals(flag)){

...

}else if("search".equals(flag)){

...

}else if("batchDelete".equals(flag)){

int count = 0;

String[] values = req.getParameterValues("checkedPrdId");

if(values!=null&&values.length>0 ){

int[] prdId = new int[values.length];

for(int i=0; i

prdId[i] = Integer.parseInt(values[i]);

}

count = this.productService.batchDelete(prdId);

}

req.setAttribute("msg", "删除"+count+"条记录!");

//获取产品列表

List prdList = this.productService.getAllProducts();

req.setAttribute("prdList", prdList);

req.getRequestDispatcher("/prd/prd_list.jsp").forward(req, resp);

}

}

}

3.service层实现

package com.xixi.demo.service;

import com.sun.javafx.collections.MappingChange.Map;

import com.xixi.demo.common.Constants;

import java.util.HashMap;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.xixi.demo.common.DBUtils;

import com.xixi.demo.dao.ProductMapper;

import com.xixi.demo.vo.ProductInfo;

public class ProductService {

/**

*

*获取所有产品

*

* @return

*/

public List getAllProducts() {

...

}

/**

*

* 商品检索

*

* @param condition

* @param pageNum

* @return

*/

public List search(HashMap condition, int pageNum) {

...

}

/**

*

* 获取总页数

*

* @param condition

* @return

*/

public int getPageCount(HashMap condition) {

...

}

/**

* 批量删除

*

* @param prdId

* @return

*/

public int batchDelete(int[] prdId) {

SqlSession session = DBUtils.getSqlSession();

ProductMapper prdMapper = session.getMapper(ProductMapper.class);

int count=0;

try {

count = prdMapper.batchDelete(prdId);

session.commit();

} catch (Exception e) {

session.rollback();

e.printStackTrace();

} finally {

session.close();

}

return count;

}

}

4.DAO层的mybatis框架接口实现

package com.xixi.demo.dao;

import java.util.HashMap;

import java.util.List;

import com.sun.javafx.collections.MappingChange.Map;

import com.xixi.demo.vo.ProductInfo;

public interface ProductMapper {

//获取所有的产品

List getAllProducts();

//通过某一个产品编号查询产品信息

ProductInfo getInfoById(Integer prdId);

//录入新的商品

int saveInfo(ProductInfo info);

//检索商品

List search(HashMap condition);

//获取产品记录条数

int getRecordCount(HashMap condition);

//批量删除

int batchDelete(int[] prdId);

}

5.DAO层的mybatis框架接口对应的xml配置文件的实现

delete from products where productId IN

#{id}

注意:

mybatis对于批量删除的过程中,参数为一个数组的情况,我们采用mybatis提供的标签将参数进行逐个与数据库id进行比对,完成批量删除操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值