[java Spring JdbcTemplate配合mysql实现数据批量删除
之前的文章 java Spring JdbcTemplate配合mysql实现数据批量添加和文章java Spring JdbcTemplate配合mysql实现数据批量修改
先后讲解了 mysql数据库的批量添加和批量删除操作 会了这两个操作之后 批量删除就不要太简单
我们看到数据库 这里 我们用的是mysql工具

这里 我们有一个test数据库 然后下面有一个 user_list 表
我们将用他的后三条数据 演示批量删除
首先 创建一个java项目 然后引入对应的所需依赖

然后 在src下创建目录 dao
在dao目录下创建接口 我这里叫 BookDao
参考代码如下
package dao;import mydata.user_list;
import java.util.List;public interface BookDao {void deleteUser(List<Object []> user_list);
}
我们定义了一个抽象的deleteUser批量删除方法 接受一个泛型为数组类型的list集合为参数
然后在 dao目录下创建一个类 叫 BookDaoImpl
参考代码如下
package dao;import mydata.user_list;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;import java.util.Arrays;
import java.util.List;@Repository
public class BookDaoImpl implements BookDao {@Autowiredprivate JdbcTemplate jdbcTemplate;@Overridepublic void deleteUser(List<Object []> user_list) {String sql = "delete FROM `user_list` WHERE user_id like ?;";int[] ints = jdbcTemplate.batchUpdate(sql,user_list);System.out.println(Arrays.toString(ints));}
}
这里 引入了了JdbcTemplate 这个类中就包含了很多数据库操作 然后 我们实现了BookDao 接口 并重写了他里面的deleteUser方法 调用了jdbcTemplate下的batchUpdate方法
这个方法 有两参数 第一个是 一段sql语句 这里我们已经写了一段基本的删除sql语句 而另一个 则是一个数组泛型list 数组的每一个下标就是一个条件 对应 sql语句中的 ?
最后 这个方法返回一个int数组类型的变量 告诉你 每一次sql影响的行数
然后 我们将这个返回值拿到并输出
然后 我们在src下创建目录 叫 senvice senvice包下创建类 叫 BookService
参考代码如下
package senvice;import dao.BookDao;
import mydata.user_list;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class BookService {@Autowiredprotected BookDao BookDao;public void deleteUser(List<Object []> user_list){BookDao.deleteUser(user_list);}
}
这里 纯属就是多掏一层 来满足架构
然后 在src下创建bean.xml 写上链接数据库的基本操作
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 数据库连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"destroy-method="close"><property name="url" value="jdbc:mysql:///test" /><!--对应SQLyog里的数据库--><property name="username" value="root" /> <!-- 用户名 --><property name="password" value="root" /> <!-- 密码 --><property name="driverClassName" value="com.mysql.jdbc.Driver" /></bean><!-- JdbcTemplate对象 --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><!--注入dataSource属性--><property name="dataSource" ref="dataSource"></property></bean><context:component-scan base-package="senvice"></context:component-scan><context:component-scan base-package="dao"></context:component-scan></beans>
这里 我们声明链接 本地test数据库 然后 username用户名 我这里是root 密码 password 我设置的还是root 然后打开了src下 senvice包和dao包的注解扫描
最后 在src下创建测试类 参考代码如下
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import senvice.BookService;import java.util.ArrayList;
import java.util.List;public class text {public static void main(String args[]) {ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");BookService bookService = context.getBean("bookService", BookService.class);List<Object[]> batehArgs = new ArrayList<>();Object[] o1 = {10};Object[] o2 = {11};Object[] o3 = {12};batehArgs.add(o1);batehArgs.add(o2);batehArgs.add(o3);bookService.deleteUser(batehArgs);}
}
然后 回头来看数据库表结构数据 显然 我们这里数组中的 id
指向的是这几条数据

代码运行结果如下

可以看到 控制台输出的信息 告诉我们 运行成功了 三次sql执行 分别影响了三条数据
我们回到数据库 刷新并重新打开表

可以看到 我们的数据就顺利干掉了

相关文章:
[java Spring JdbcTemplate配合mysql实现数据批量删除
之前的文章 java Spring JdbcTemplate配合mysql实现数据批量添加和文章java Spring JdbcTemplate配合mysql实现数据批量修改 先后讲解了 mysql数据库的批量添加和批量删除操作 会了这两个操作之后 批量删除就不要太简单 我们看到数据库 这里 我们用的是mysql工具 这里 我们有…...
uos 20 统信 fprintd 记录
uos 20 统信 fprintd 记录 sudo busctl deepin-authenticate.service /usr/lib/systemd/system/deepin-authenticate.service [Unit] DescriptionDeepin Authentication[Service] Typedbus BusNamecom.deepin.daemon.Authenticate ExecStart/usr/lib/deepin-authenticate/d…...
vue移动端h5,文本溢出显示省略号,且展示‘更多’按钮
问题: 元素宽度100%,宽度会随着浏览器缩放而变化。元素内文本超过4行时显示省略号,同时展示‘更多’按钮,点击更多按钮展示全部文本。如下图所示 超出四行显示省略号(…)的代码 .content{overflow:hidden;text-overflow: elli…...
php宝塔搭建部署实战兰空图床程序网站PHP源码
大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套Lsky Pro兰空图床程序网站PHP的源码。感兴趣的朋友可以自行下载学习。 技术架构 PHP8.0 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码,宝塔添加…...
软件测试面试:拿到一个产品(版本)如何开展测试?
产品提测后,如何开展测试? 我们都了解软件测试的执行流程,......提测-冒烟测试-详细测试-提交缺陷报告-回归测试,但软件测试并不总是线性过程,它甚至可能是螺旋结构,不断地试错,不断地迭代&…...
【Opencv项目实战】图像的像素值反转
文章目录一、项目思路二、算法详解2.1、获取图像信息2.2、新建模板2.3、图像通道顺序三、项目实战:彩图的像素值反转(方法一)四、项目实战:彩图的像素值反转(方法二)五、项目实战:彩图转换为灰图…...
Swagger生成接口在线文档
OpenAPI规范(OpenAPI Specification 简称OAS)是Linux基金会的一个项目,试图通过定义一种用来描述API格式或API定义的语言,来规范RESTful服务开发过程,目前版本是V3.0,并且已经发布并开源在github上。&#…...
104.第十九章 MySQL数据库 -- MySQL主从复制、 级联复制和双主复制(十四)
6.1.2 实现主从复制配置 参考官网 https://dev.mysql.com/doc/refman/8.0/en/replication-configuration.html https://dev.mysql.com/doc/refman/5.7/en/replication-configuration.html https://dev.mysql.com/doc/refman/5.5/en/replication-configuration.html https://m…...
第一次使用Python for Qt中的问题
在创建带有form的python for qt的时候,使用的库是pySide6,而不是pyqt。 因此,需要安装pyside6。 Running "/usr/bin/python3 -m pip install PySide6 --user" to install PySide6. ERROR: Could not find a version that satisfi…...
.Net Core WebApi 在Linux系统Deepin上部署Nginx并使用(一)
前言: Deepin最初是基于Ubuntu的发行版 2015年脱离Ubuntu开发,开始基于Ubuntu上游Debian操作系统 2019年脱离Debian,直接基于Linux开发,真正属于自己的上游Linux系统发行版 2022年8月,新版《Deepin V23》我下载开始了我…...
Java——打开轮盘锁
题目链接 leetcode在线oj题——打开轮盘锁 题目描述 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’࿰…...
JavaScript(2)
一、事件 HTML事件是发生在hTML元素上的“事情”。比如:按钮被点击、鼠标移动到元素上等… 事件绑定 方式一:通过HTML标签中的事件属性进行绑定 <input type"button" value"点我" onclick"on()"><script>fun…...
FFMPEG 安装教程windowslinux(CentOS版)
ps: 从笔记中迁移至blog 版本概述 Windows 基于win10 Linux 基于CentOS 7.6 一.Windows安装笔记 1.下载安装 https://ffmpeg.org/download.html 2 解压缩,拷贝到需要目录,重命名 3 追加环境变量 echo %PATH%setx /m PATH "%PATH%;F:\dev_tools\…...
【虹科案例】虹科任意波形发生器在量子计算中的应用
虹科AWG在量子计算中的应用精度在研究中始终很重要,很少有研究领域需要比量子研究更高的精度。奥地利因斯布鲁克大学的量子光学和量子信息研究所需要一个任意波形发生器(AWG)来为他们的研究生成各种各样的信号。01无线电频率第一个应用是在射…...
【强化学习】强化学习数学基础:随机近似理论与随机梯度下降
强化学习数学基础:随机近似理论与随机梯度下降Stochastic Approximation and Stochastic Gradient Descent举个例子Robbins-Monro algorithm算法描述举个例子收敛性分析将RM算法用于mean estimationStochastic gradient descent算法描述示例和应用收敛性分析收敛模式…...
ThreadLocal 学习常见问题
ThreadLocal 这个此类提供线程局部变量。这些变量不同于通常的对应变量,因为每个访问一个变量的线程(通过 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是希望将状态与线程(例如,用户 ID 或事务 ID)关联的类中的私有静态字段。使…...
文件包含漏洞1 | iwebsec
文章目录00-文件包含漏洞原理环境01-本地文件包含读取敏感文件信息配合文件上传getshell配合日志文件getshell配合SSH日志配合运行环境00-文件包含漏洞原理 为什么要文件包含? 为什么会有文件包含漏洞? 因为将被包含的文件设置为变量,用来进行动态调用…...
基于MindAR实现的网页端WebAR图片识别叠加动作模型追踪功能(含源码)
前言 由于之前一直在做这个AR/VR 相关的功能开发,大部分的时候实现方式都是基于高通Vuforia或者EasyAR等基于Unity3d的引擎的开发,这样开发的程序大部分都是运行在APP上,安卓或者ios的开发也能一次性搞定。不过当时大部分的需求都是需要在网…...
ssh 远程连接方式总结
SSH 概述 SSH(安全外壳协议 Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过 SSH连接远程服务器,从而做开发,Wind…...
springboot+mybatisPlus简单实现数据分页显示
项目地址:https://gitee.com/flowers-bloom-is-the-sea/geo_demo/tree/v1.0/ 这个项目的测试是可以的。 先来查看一些tb_shop表: id name x y ------ ------ ------ --------里面是空数据,那么现在对数据里插入一些数据…...
Bing Wallpaper自动化部署:GitHub Actions与持续集成
Bing Wallpaper自动化部署:GitHub Actions与持续集成 【免费下载链接】bing-wallpaper 项目地址: https://gitcode.com/gh_mirrors/bi/bing-wallpaper Bing Wallpaper项目是一个专注于收集和展示Bing每日壁纸的开源项目,通过自动化部署可以确保壁…...
智慧城市中的时空AI:从路网数据到拥堵预测的完整项目拆解
智慧城市中的时空AI:从路网数据到拥堵预测的完整项目拆解 在省会城市早高峰的主干道上,交通信号灯与车流形成一场看不见的博弈。传统基于固定配时的信号控制系统,往往在突发拥堵面前显得力不从心。而某市"交通大脑"的落地案例显示&…...
Uvicorn终极指南:如何快速构建高性能Python异步Web服务器
Uvicorn终极指南:如何快速构建高性能Python异步Web服务器 【免费下载链接】uvicorn An ASGI web server, for Python. 🦄 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn Uvicorn是一款专为Python设计的轻量级ASGI Web服务器…...
白帽 SEO 与网站分析数据的关系是什么
<h3 id"seo">白帽 SEO 与网站分析数据的关系是什么</h3> <p>在当今互联网时代,搜索引擎优化(SEO)已经成为了每个网站提升流量和品牌知名度的关键因素。而在众多的SEO策略中,白帽SEO(White…...
Betaflight 4.5配置文件升级实战:从STM32H743到AOCODARC H7Dual的硬件适配指南
Betaflight 4.5硬件适配深度解析:从STM32H743到AOCODARC H7Dual的实战迁移指南 穿越机飞控系统的核心在于硬件与软件的完美协同,而Betaflight作为开源飞控领域的标杆,其4.5版本在硬件抽象层进行了重大革新。本文将聚焦STM32H743芯片与AOCODAR…...
利用快马AI快速生成n8n自动化工作流原型,十分钟搭建业务逻辑骨架
今天想和大家分享一个快速搭建n8n自动化工作流原型的经验。作为一个经常需要处理各种自动化流程的开发者,我发现用InsCode(快马)平台可以大大缩短从构思到实现的时间。 为什么选择n8n工作流原型 n8n作为开源自动化工具,最大的优势就是可视化工作流设计…...
如何用3层智能架构构建你的AI开发助手:从零到精通的完整指南
如何用3层智能架构构建你的AI开发助手:从零到精通的完整指南 【免费下载链接】superpowers Claude Code superpowers: core skills library 项目地址: https://gitcode.com/GitHub_Trending/su/superpowers 你是否曾想过,为什么有些开发者能快速完…...
数电技术实战解析04:CMOS门电路设计与优化
1. CMOS反相器:数字世界的开关艺术 第一次拆解CMOS反相器时,我被它的精妙设计震撼到了——就像家里电灯的双控开关,只不过这个"开关"的尺寸只有头发丝的万分之一。这个由PMOS和NMOS管组成的经典结构,构成了所有数字电路…...
OpenClaw+百川2-13B自动化数据分析:Excel报告生成与可视化
OpenClaw百川2-13B自动化数据分析:Excel报告生成与可视化 1. 为什么需要自动化数据分析工具 上周我接手了一个市场调研项目,需要分析来自5个渠道的销售数据。当我第三次因为手工复制粘贴数据出错而不得不重做报表时,突然意识到:…...
RIME输入法词库改造指南:让你的THUOCL词库同时支持简体和港台繁体
RIME输入法词库改造指南:让你的THUOCL词库同时支持简体和港台繁体 在中文输入法的世界里,RIME以其高度可定制性赢得了技术爱好者的青睐。但当我们面对不同地区的中文用户时,一个棘手的现实问题浮现:如何让单一词库同时满足大陆简…...
