当前位置: 首页 > article >正文

数据库批处理

目录

  • 第一章、批处理介绍
    • 1.1)批处理的起源
    • 1.2)什么是数据库的批处理
    • 1.3)具体如何实现批处理?
  • 第二章、Spring Batch数据批处理
    • 2.1)Spring Batch是什么

友情提醒:
先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。

第一章、批处理介绍

1.1)批处理的起源

①批处理(Batch),也称为批处理脚本。在计算机系统还是DOS(磁盘操作系统是一种早期的命令行操作系统)时期时被大量使用,用来对某对象进行批量的处理,通常被认为是一种简化的脚本语言,现在它应用于DOS和Windows系统中。批处理文件的扩展名为.bat(即是batch的缩写)简称 BAT文件 。

②在Windows NT以后的平台中,还加入了以.cmd为扩展名的批处理文件,其性能比.bat文件更加优越,执行也与.bat文件一样方便快捷。

1.2)什么是数据库的批处理

批处理(batch) 操作数据库,批处理指的是一次操作中执行多条SQL语句。
没有使用批处理:执行1000条sql,需打开1000次连接关闭1000连接。
使用批处理:1000条sql打包发送给服务器,一次执行这1000条sql,减少与数据库的交互,提高程序的效率。
批处理过程主要分两步:
①保存将执行的SQL语句
②执行保存的SQL语句

1.3)具体如何实现批处理?

第一步:打开mysql的批处理:

: url=jdbc:mysql://127.0.0.1:3306/db5?characterEncoding=UTF-8&rewriteBatchedStatements=true

第二步:使用Statement接口或者Preparedstatement接口
①主要方法:

增加批处理:addBatch​(String sql) 将要执行的SQL先保存在当前命令列表中,先不执行

执行批处理:int[] executeBatch() 执行SQL语句,将批处理中所有SQL语句执行,
返回一个数组,这个数组是说明每条命令所影响的行数

清空批处理:clearBatch() : 清空当前批处理的语句

②PreparedStatement与Statement的介绍区别
两者都是用来执行SQL语句的。
1.Statement:不能进行预编译,不安全,不能使用占位符会发生SQL注入攻击。
2.PreparedStatement:能够将SQL语句预编译,从而提高执行效率。PreparedStatement接口继承了Statement接口,可以防止sql注入,通过参数化查询的方式,将参数值作为参数传递给SQL语句,从而避免了SQL注入攻击。

③使用 PreparedStatement 执行批处理,在多次调用 addBatch() 方法时,传入不同的 SQL 语句即可。

String sql = "INSERT INTO users(uname, uage) VALUES(?,?)";
PreparedStatement prest = conn.prepareStatement(sql);
for(int i=0; i<=100; i++){
    prest .setString(1, "user"+i);
    prest .setInt(2, i);
    prest .addBatch();
}
int[] results = ps.executeBatch();

第二章、Spring Batch数据批处理

2.1)Spring Batch是什么

Spring Batch是一个是一个轻量级的框架,适用于处理一些灵活并没有到海量的数据。
读取或者写入大量的记录,位置可以是数据库、消息队列(MQ)或者文件

具体的看这篇文章吧:Spring Batch(1)——数据批处理概念

我自己的话以后用到再来学。


http://www.kler.cn/a/107591.html

相关文章:

  • 【go从零单排】JSON序列化和反序列化
  • uni-app移动端与PC端兼容预览PDF文件
  • [ 网络安全介绍 5 ] 为什么要学习网络安全?
  • 在Java中使用ModelMapper简化Shapefile属性转JavaBean实战
  • ctfshow-web入门-SSTI(web361-web368)上
  • openSUSE 环境下通过 zypper 安装软件
  • C++学习笔记之四(标准库、标准模板库、vector类)
  • slice()和splice()用法
  • 【笔录】TVP技术沙龙:寻宝AI时代
  • dd命令用法学习,是一个功能强大的工具
  • 走进人工智能的大门:打造职业梦想的契机
  • Vue+ElementUI项目打包部署到Ubuntu服务器中
  • C# 图解教程 第5版 —— 第11章 结构
  • Vue3问题:如何实现密码加密登录?前后端!
  • 查询和下载国自然科学基金
  • 算法——贪心算法
  • 适用于嵌入式arm的ffmpeg编解码
  • RedissonCach的源码流程
  • 视频转换器WinX HD Video Converter mac中文特点介绍
  • 在el-dialog中使用tinymce 点击工具栏下拉框被遮挡
  • 分享三个国内可用的免费GPT-AI网站
  • 学习笔记:Splay
  • RTOS编程中的原子操作
  • docker 常用指令
  • SpringAOP源码解析之advice执行顺序(三)
  • phar反序列化