Mybatis怎么使用动态语句实现批量删除
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这篇文章主要介绍Mybatis怎么使用动态语句实现批量删除,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!下面我将演示如何使用动态语句批量删除数据库数据本人在数据库建了一张emp
千家信息网最后更新 2025年02月22日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 ThreadLocalthreadLocal = 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安全错误
数据库的锁怎样保障安全
智能网络技术工资
软件开发wbs实例
网络安全达到的效果
http代理服务器设置
武汉大学网络安全学院临空港
网易免费企业邮箱服务器
软件开发过程中优缺点
热点分享网络技术
数据库运维项目后期处理做什么的
科技伦理 互联网公司
高中视频软件开发
违反网络安全法二十五条
软件开发新项目的上线吗
网络技术学习用品拼多多
access数据库一对多
数据库表格加一列统计重数次数
网络安全宣传周研讨会
把自己数据库打包发给别人怎么弄
太原网络技术运维
网络安全现在有哪些问题
小米粒直播软件开发
全民参与网络安全
信息安全和数据库哪一个工资高
关于网络安全审查的问题
域服务器实现集中管理
网络安全宣传周研讨会
正邦集团软件开发怎么样
恶意压测服务器安全吗
ps4 pro数据库
ssh修改数据库信息