Mybatis怎么使用动态语句实现批量删除
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍Mybatis怎么使用动态语句实现批量删除,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!下面我将演示如何使用动态语句批量删除数据库数据本人在数据库建了一张emp
千家信息网最后更新 2025年11月07日Mybatis怎么使用动态语句实现批量删除
这篇文章主要介绍Mybatis怎么使用动态语句实现批量删除,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
下面我将演示如何使用动态语句批量删除数据库数据
本人在数据库建了一张emp员工表(表的数据自己填充),表的结构如下:

批量删除的核心代码为,在实体映射文件中配置如下的代码:
delete from emp where empno in #{arr}
下面是项目的结构
本人使用的是maven搭建的web项目

IEmpDAO.java为接口提供批量删除数据方法,EmpDAOImpl.java为接口的实现类,MybatisSqlSessionFactory.java为本人创建的获取sqlSession的工具类,Emp.java为实体类,Emp.xml为映射文件,mybatis_cfg.xml为mybatis主配置文件,Test.java为测试类,pom.xml为maven引入依赖的文件。
1、IEmpDAO.java为接口提供批量删除数据方法
/** * 批量删除 * * @param arr * @return */ public boolean doRemoveeMore(int[] arr);
2、EmpDAOImpl.java为接口的实现类
public boolean doRemoveeMore(int[] arr) { SqlSession sqlSession = null; try { sqlSession = MybatisSqlSessionFactory.getMySqlSession(); int result = sqlSession.delete("cn.sz.hcq.pojo.Emp.deleteMoreEmp", arr); sqlSession.commit(); return result > 0 ? true : false; } catch (Exception e) { e.printStackTrace(); sqlSession.rollback(); } finally { MybatisSqlSessionFactory.closeSqlSession(); } return false; }3、MybatisSqlSessionFactory.java
为本人创建的获取sqlSession的工具类
package cn.sz.hcq.factory; import java.io.IOException;import java.io.Reader; import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MybatisSqlSessionFactory { // 配置文件 private static final String RESOURCE = "mybatis_cfg.xml"; private static Reader reader = null; private static SqlSessionFactoryBuilder builder = null; private static SqlSessionFactory factory = null; // 可以在同一个线程范围内,共享一个对象 private static ThreadLocal threadLocal = new ThreadLocal(); // 静态代码块(类加载的时候执行一次) static { try { reader = Resources.getResourceAsReader(RESOURCE); builder = new SqlSessionFactoryBuilder(); factory = builder.build(reader); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getMySqlSession() { // 从本地线程中获取session连接 SqlSession sqlSession = threadLocal.get(); // 连接为空则创建连接,并将该连接添加到本地线程中去 if (sqlSession == null) { if (factory == null) { rebuildFactory(); } sqlSession = factory.openSession(); } threadLocal.set(sqlSession); return sqlSession; } // 创建工厂 public static void rebuildFactory() { try { reader = Resources.getResourceAsReader(RESOURCE); builder = new SqlSessionFactoryBuilder(); factory = builder.build(reader); } catch (IOException e) { e.printStackTrace(); } } // 关闭连接 public static void closeSqlSession() { SqlSession sqlSession = threadLocal.get(); if (sqlSession != null) { // 关闭session sqlSession.close(); } // 同时将本地线程中置为null(防止用户再次调用时出现空的session) threadLocal.set(null); } } 4、Emp.java为实体类
public class Emp implements Serializable { private Integer empno; private String ename; private String job; private Integer mgr; private Date hiredate; private Double sal; private Double comm; private Integer deptno; public Integer getEmpno() { return empno; } public void setEmpno(Integer empno) { this.empno = empno; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } public Integer getMgr() { return mgr; } public void setMgr(Integer mgr) { this.mgr = mgr; } public Date getHiredate() { return hiredate; } public void setHiredate(Date hiredate) { this.hiredate = hiredate; } public Double getSal() { return sal; } public void setSal(Double sal) { this.sal = sal; } public Double getComm() { return comm; } public void setComm(Double comm) { this.comm = comm; } public Integer getDeptno() { return deptno; } public void setDeptno(Integer deptno) { this.deptno = deptno; } }5、Emp.xml为映射文件
delete from emp where empno in #{arr}
6、mybatis_cfg.xml为mybatis主配置文件
7、pom.xml为maven引入依赖的文件
4.0.0 cn.sz.hcq.pro Mybatis_04 0.0.1-SNAPSHOT war org.mybatis mybatis 3.2.3 mysql mysql-connector-java 5.1.39
8、Test.java为测试类
public class Test { public static void main(String[] args) { IEmpDAO empDAO = new EmpDAOImpl(); System.out.println("----------批量删除----------"); int[] arr = { 7791, 7792 };//删除的主键 boolean removeeMore = empDAO.doRemoveeMore(arr); System.out.println("批量删除的结果:" + removeeMore); }}完成代码后,运行测试类就可以完成批量删除。
以上是"Mybatis怎么使用动态语句实现批量删除"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
文件
数据
代码
接口
线程
配置
动态
语句
实体
测试
内容
工具
数据库
方法
篇文章
结构
项目
价值
兴趣
再次
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
查询数据库所有统计信息
迅雷极品美图数据库
校园网网络安全实地勘察报告
惠州巧雇网络技术有限公司
网络安全内容审查的上市公司
军团要塞二显示非安全服务器
此类账号不允许进入服务器
大兴区数据网络技术软件
dede默认数据库
北京做网络安全电话
方舟生存进化怎么退服务器
数据库表删除恢复
oracle数据库增加一列语句
温州原邦网络技术有限公司
java查询数据库图片吗
大学生网络安全意识可行性
excel表格怎么录入数据库
rust怎么开服务器
沈阳直销软件开发收费多少
数据库table大全
学校网络安全监督说明
网络安全公司名注册查询
cmd命令行备份数据库
集团网络安全工程师
三级网络技术书pdf
mc无法连接服务器
我的世界本地联机无法连接服务器
青岛软件开发培训机构
小飞象解说硬核服务器
如何查学校服务器ip地址