数据库批处理
目录
- 第一章、批处理介绍
- 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)——数据批处理概念
我自己的话以后用到再来学。