1、Statement批处理

  当你有10条SQL语句要执行时,一次向服务器发送一条SQL语句,这样做的效率上极差,处理的方案是使用批处理,即一次向服务发送多条SQL语句,然后由服务器一次性处理。

  批处理只针对更新(增删改)语句,批处理与查询无关。

  可以多次调用Statement类的addBatch(String sql)方法,把需要执行的所有SQL语句添加到一个“批”中,然后调用Statement类的excuteBatch()方法来执行当前“批中的语句”。

  • void addBatch(String sql):添加一条语句到“批”中。
  • int[] excuteBatch():执行“批”中所有的语句,返回值表示每条语句所影响的行数据;
  • void clearBatch():清空“批”中的所有语句

2、PreparedStatement批处理

  PreparedStatement的批处理有所不同,因为每个PreparedStatement对象都绑定一条SQL模板。所以向PreparedStatement中添加的不是SQL语句,而是给“?”赋值。

 1 public class Demo5 {2     /*3     * pstmt对象内部有集合4     * 1、用循环疯狂向pstmt中添加sql参数,它自己有模板,5     * 使用一组参数与模板就可以匹配一条sql语句6     * 2、调用它的执行批方法,完成向数据库发送。7     * */8     @Test9     public void fun1() throws Exception {
10         /*
11         * pstmt
12         * */
13         Connection con = JdbcUtils.getConnection();
14         String sql = "INSERT INTO t_user VALUES (?,?)";
15         PreparedStatement pstmt = con.prepareStatement(sql); 16 for (int i = 0; i < 10000; i++) { 17 pstmt.setInt(1,i+1); 18 pstmt.setInt(2,i); 19 pstmt.addBatch();//添加批,这一组参数就保存到集合中; 20  } 21 long start = System.currentTimeMillis(); 22 pstmt.executeBatch();//执行批处理; 23 long end = System.currentTimeMillis(); 24 System.out.println(end-start); 25  } 26 }

打开批处理

MySQL的批处理也需要通过参数来打开:rewriteBatchedStatements=true,如

url = jdbc:mysql://localhost:3306/mydb1?rewriteBatchedStatements=true

效果:

  • 批处理开启前耗时:140794ms
  • 批处理开启后耗时:174ms

转载于:https://www.cnblogs.com/gdwkong/p/7632905.html

JDBC入门(4)--- 批处理相关推荐

  1. day17(JDBC入门jdbcUtils工具介绍)

    day17 JDBC整体思维导图 JDBC入门 导jar包:驱动! 加载驱动类:Class.forName("类名"); 给出url.username.password,其中url ...

  2. JDBC入门案例及相关API概述

    1 JDBC概念 问题:JDBC的本质是什么,解决了什么问题? 2.API讲解 <1> DriverManager的作用 问题:DriverManager有什么作用? 作用一:注册驱动 D ...

  3. Web应用程序中的Spring JDBC入门

    在上一篇文章中,我已经向您展示了如何设置基本的Spring 3 MVC Web应用程序 . 重复使用该项目设置作为模板,我将向您展示如何增强它以与JDBC一起使用. 有了它,您可以存储和检索数据库中的 ...

  4. 8、JDBC入门整理

    JDBC入门 l  导jar包:驱动! l  加载驱动类:Class.forName("类名"); l  给出url.username.password, l  使用DriverM ...

  5. 9. MySQL -- JDBC入门

    目录 JDBC入门 什么是JDBC 使用JDBC的好处: JDBC开发使用到的包: 导入驱动Jar包 JDBC的核心API JDBC访问数据库的步骤 DriverManager类 加载和注册驱动 Dr ...

  6. Spring Data JDBC入门使用Demo

    Spring Data JDBC入门使用Demo Spring Data JDBC is a simple, limited, opinionated ORM. Spring Data JDBC特点: ...

  7. 大数据WEB阶段(七)JDBC、数据库批处理、数据库连接池

    JDBC 一.概述 数据库驱动: 数据库厂商提供的用来操作数据库的jar包 JDBC简介 由于各大数据库厂商提供的数据库驱动各不相同, 导致了开发人员的学习成本十分的高. SUN公司为了简化数据库的操 ...

  8. MySQL笔记——JDBC入门

    (一)JDBC简介 JDBC概念:(1)JDBC就是使用Java语言操作关系型数据库的一套API(2)全称:(Java DataBase Connectivity)Java数据库连接 (二)快速入门 ...

  9. 小白的jdbc入门之旅

    MYSQL基础 第一章 mysql 的服务启动 第一节 启动过程 1.DriverManager 用于管理一组JDBC驱动程序的基本服务. 2.java.sql.Connection 数据库连接对象 ...

最新文章

  1. “你行你上”:有本事跟OpenAI Five打一把DOTA?| 极客头条
  2. python线性表顺序存储实现_数据结构——基于C的线性表的顺序存储结构的基本操作的实现...
  3. 深度学习(二)theano学习笔记(1)环境搭建
  4. 深度学习(一)深度学习学习资料
  5. java多线程做一件事_关于Java的十件事
  6. C++学习之路 | PTA乙级—— 1002 写出这个数 (20分)(精简)
  7. linux命令 chmod_Linux chmod命令示例
  8. Script:列出Oracle每小时的redo重做日志产生量
  9. Micro-mvc与springcloud整合
  10. pandas删除最后一列_Python中pandas dataframe删除一行或一列:drop函数详解
  11. 百度html标签大全,百度指数千牛帮:做出出色的HTML网站页面注意事项有哪些?...
  12. QT实现打地鼠小游戏
  13. java中build path_Eclipse中的build path详解
  14. 软考真题答案-2021年11月系统集成项目管理工程师上午题(二)
  15. Sicily 1090 Highways
  16. css 滤镜 filter 属性
  17. 量子计算机采用超导技术吗,新发现的超导体材料可能是量子计算机的硅
  18. 【Python从入门到精通】二、核心编程:5.正则表达式
  19. 神经网络训练怎么看收敛,神经网络收敛的定义是
  20. 计算机软考科目中,该怎么选择考试科目?

热门文章

  1. 我们用力的活着却把自己丢了
  2. Symbian 资源文件解析
  3. ubuntu20.04安装OPTEE
  4. freemind在ubuntu20.04下面的安装
  5. linux下面安装Matlab2017b、快捷键修改、修改背景颜色(转载+自己整理)
  6. 在mysql-workbench中运行set和declare并且观察区别
  7. OpenGL:纹理Textures
  8. 深度学习(四十四)——GAN的评估指标, DCGAN, WGAN-GP, CGAN, BEGAN EBGAN
  9. 深度学习(十)——花式卷积(2)
  10. python获取中文字体点阵坐标_Python实现点阵字体读取与转换的方法