Mybatis怎么使用动态语句实现批量删除
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍Mybatis怎么使用动态语句实现批量删除,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!下面我将演示如何使用动态语句批量删除数据库数据本人在数据库建了一张emp
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
文件加密或不是一个数据库
日记app软件开发
上海机构养老软件开发系统
湘西州网络安全执法检查
厦门同安软件开发外包
网络安全审计服务是什么
申请安全证书与服务器
实习实践报告软件开发
赤峰云计算网络安全培训学校
没有基础知识学软件开发
数据库导入后id自增长
电子表格带数据库
软件开发员比网络工程师更累
组建网络安全协会
连接服务器怎么连的
无锡固定资产管理软件开发
游戏软件软件开发与制作
大数据网络安全讲解
主题队会 网络安全
服务器 sas设置
如何连接腾讯云服务器
软件开发实施方案费用估算
海北州网络技术哪个好
mysql数据库回滚
黎家网络安全工程师
网络技术绝对引用
河南志远网络技术
跨路由数据库访问
数据库中信息
流利说服务器挂了