Java之批处理的实现
批处理(batch)
一、批处理介绍
1、 批处理指的是一次操作中执行多条SQL语句
2、 批处理相比于一次一次执行效率会提高很多
3、 批处理主要是分两步:
1.将要执行的SQL语句保存
2.执行SQL语句
4、 Statement和PreparedStatement都支持批处理操作,这里我们只需要掌握PreparedStatement的批处理方式:
1) 方法:
void addBatch()
- 将要执行的SQL先保存起来,先不执行
- 这个方法在设置完所有的占位符之后调用
int[] executeBatch()
- 这个方法用来执行SQL语句,这个方法会将批处理中所有SQL语句执行
2) mysql默认批处理是关闭的,所以我们还需要去打开mysql的批处理:
? rewriteBatchedStatements=true
我们需要将以上的参数添加到mysql的url地址中
3) 注意:低版本的mysql-jdbc驱动也不支持批处理
二、批处理的实现
在连接数据库的url后面添加? rewriteBatchedStatements=true,开启批处理
1 public void insertUser() throws SQLException {
Connection conn = JDBCUtils.getConnection();
PreparedStatement ps = null;
String sql = "insert into t_user values(null,?)";
ps = conn.prepareStatement(sql);
for (int i = 0; i < 10000; i++) {
ps.setString(1, "user" + i);
ps.addBatch(); //将sql语句保存起来,先不执行
}
long start = System.currentTimeMillis();
ps.executeBatch(); //执行批处理中所有的sql语句
long end = System.currentTimeMillis();
System.out.println("It costs" + (end - start) + "milliSeconds");
}
测试代码:
@Test
public void testBatch() throws Exception {
Dao dao=new Dao();
dao.insertUser();
}
测试结果:
使用批处理只需要200多毫秒,而不开启批处理需要十几分钟,由此可见,使用批处理可以大大缩短sql语句执行时间
Java之批处理的实现的更多相关文章
- Java执行批处理.bat文件(有问题???求高手帮忙解答!!!)
Java执行批处理.bat文件(有问题???求高手帮忙解答!!!) 在项目开发中常常都会遇到需要在代码中调用批处理bat脚本,把自己在项目中遇到过的总结下 ...
- Java JDBC批处理插入数据操作
在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及 ...
- Java JDBC批处理插入数据操作(转)
在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及 ...
- Java调用批处理或可执行文件
import java.io.BufferedReader; import java.io.InputStreamReader; public class Test { public static v ...
- java .bat批处理(java cmd命令)
参考:http://www.iitshare.com/under-the-cmd-compile-the-java.html 参考:http://zhidao.baidu.com/link?url=Y ...
- Java -- JDBC 批处理
两种批处理方式: 采用Statement.addBatch(sql)方式实现批处理: •优点:可以向数据库发送多条不同的SQL语句. •缺点: •SQL语句没有预编译. •当向数据库发送多条语句相同, ...
- java必备基础知识点
Java基础 1. 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等 2. 简单写出 ...
- Java JDBC Batch
Java批量处理数据 import java.sql.Connection; import java.sql.PreparedStatement; //import String sql = &quo ...
- java编程小记
http://blog.csdn.net/pipisorry/article/details/51050189 很久没写java,什么都不会了,小记一下. 类型转换 字符串转int类型:Integer ...
随机推荐
- C# DataTable的常用用法讲解
在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.DataTable简 ...
- windows中git输错密码后不能重新输入的问题
当输入密码错误后,git会把密码保存在windows的你的当前用户名的缓存中. 我们可以在控制面板中寻找到这个缓存,再删掉就可以了. 首先,打开“控制面板”,把“查看方式”改为“大图标”,再打开“用户 ...
- redis学习一 大体概述
redis 命令查找:http://doc.redisfans.com/ 1,redis 技术简介以及疑问 redis是一个开源的,内存存储的数据结构服务器.可以用做数据库,高速缓存和消息队 ...
- LAMP 3.1 mysql的root密码重置
给mysql设置密码 /usr/local/mysql/bin/mysql -uroot 可以直接登录mysql 设置密码 /usr/local/mysql/bin/mysqladmin -uroot ...
- mybatis(非常详细的哦~~~~)
备注:ibatis 迁入google code 更名为Mybatis 官方文档:http://mybatis.org/mybatis-3/ 比较好的教程推荐:http://www.blogjava.n ...
- DAY3-python函数
目录 一.了解函数 二. 函数定义 三.函数使用原则:先定义,后调用 四.定义函数的三种形式 五.函数的调用 六.函数的参数 七. 函数对象 八.函数嵌套 九.名称空间与作用域 十. 闭包函数 十一. ...
- koa2 原生链接mysql
1.安装mysql $ npm install mysql 2.代码示例: const mysql = require("mysql"); // mysql.Promise = g ...
- JavaScript的self和this使用小结
一.self这个非常简单.我们知道,打开任何一个网页,浏览器会首先创建一个窗口,这个窗口就是一个window对象,也是js运行所依附的全局环境对象和全局作用域对象.self 指窗口本身,它返回的对象跟 ...
- 仿射变换详解 warpAffine
转自 http://www.cnblogs.com/dupuleng/articles/4055020.html 博客园 首页 新随笔 联系 管理 订阅 随笔- 1 文章- 185 评论- 14 ...
- linux所有文件中查找关键字的命令
grep 192.168.1.1 * -r 在所有文件中查找192.168.1.1