前言

关于程序执行延时过长,很大部分来源于数据建立连接延时及连接池上限等到可用连接演示,如果能减少与数据库建立连接的次数,无疑提高了系统的执行效率,关于这一点可以将相关的频繁的sql操作以批处理的方式进行提交,以提供程序执行效率,主要有两种方式进行sql的批处理提交,一个是Statement,另外一个是PrepareStatement方式,具体如下:

一、使用Statement方式

使用Statement的executeBatch()方法执行批处理,具体代码如下:public class statementBatchTest(){@b@@b@    public static  void main(String[] args){@b@        try{ @b@            Class.forName("oracle.jdbc.driver.OracleDriver");@b@            String url="jdbc:oracle:thin:@localhost:1521:xwood";@b@            Connection conn=DriverManager.getConnection(url,"scott","tiger");@b@            Statement stmt=conn.createStatement();@b@            stmt.addBatch("insert into sys_test values(1,2)");@b@            stmt.addBatch("update sys_test set no=3 where  id=1");@b@            stmt.addBathc("delete sys_test where no=3");@b@            stmt.executeBatch();          @b@        }catch(Exception ex){@b@            ex.printStatckTrack();@b@        }@b@    @b@    }@b@@b@}

二、使用PrepareStatement方式

使用PrepareStatement的addBatch()方法向批处理追加sql,以executeBatch方法提交批次处理,具体代码示例如下:public class  prepareStatementBatchTest(){@b@    @b@    public static void main(String[] args){@b@        @b@        String sql="select *  from  sys_test where no=? ";@b@        try{@b@            @b@            Class.forName("oracle.jdbc.driver.OracleDriver");@b@            String url="jdbc:oracle:thin:@localhost:1521:xwood";@b@            Connection conn=DriverManager.getConnection(url,"scott","tiger");@b@            PreparedStatement ps=conn.prepareStatement(sql);@b@            ps.setString(1,"3");@b@            ps.addBatch();@b@            ps.setString(1,"4");@b@            ps.addBatch();@b@            ps.executeBatch();@b@        @b@        }catch(Exception ee){@b@            ee.printStatckTrace();@b@        }    @b@    @b@    }@b@@b@@b@}

总结

如果需要对数据进行复杂的操作,涉及多次数据变更操作,尽量放到一个批次里面进行提交处理以提供程序效率。在使用时,可以结合使用事物控制,以保证数据执行的一致完整性。

jdbc操作mysql延时操作_关于jdbc通过Statement和PrepareStatement进行数据库批处理操作,以提供程序效率...相关推荐

  1. jdbc mysql 源码_【JDBC系列】从源码角度理解JDBC和Mysql的预编译特性

    背景 最近因为工作调整的关系,都在和数据库打交道,增加了许多和JDBC亲密接触的机会,其实我们用的是Mybatis啦.知其然,知其所以然,是我们工程师童鞋们应该追求的事情,能够帮助你更好的理解这个技术 ...

  2. mysql桥梁表_以JDBC为桥梁入门MySQL数据库基础

    MySQL入门代码,以JDBC为桥梁 1.[代码][Java]代码 /* * 张泽旺编写,SYSU * 2015-4-28 */ import java.sql.Connection; import ...

  3. C mysql批量写入_使用JDBC在MySQL数据库中快速批量插入数据

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: Adds a set of ...

  4. jdbc连接mysql传参_将参数传递给JDBC PreparedStatement

    我正在尝试为我的程序制作验证类.我已经建立了与MySQL数据库的连接,并且已经在表中插入了行.该表由firstName,lastName和userID领域.现在,我想通过构造函数的参数在数据库中选择特 ...

  5. linux 操作mysql 数据库命令_在Linux上用命令怎么连接数据库

    展开全部 以常见的mysql和oracle这两种数据库为例: 一.连接mysql(mysql服务已开启) 1.mysql数据库安装32313133353236313431303231363533e58 ...

  6. jdbc连接mysql的配置文件_如何实现jdbc连接数据库并通过配置文件调用数据的方法(代码)...

    本篇文章给大家带来的内容是关于如何实现jdbc连接数据库并通过配置文件调用数据的方法(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Dbutil类 package com. ...

  7. gcc操作mysql 建表_用gcc批量建mysql库表

    用gcc批量建mysql库表 2007-6-1文字大小:大中小 file 1 my.c //------------------------------------------------------ ...

  8. java操作mysql导表_Java实现批量导入excel表格数据到数据库中的方法

    本文实例讲述了Java实现批量导入excel表格数据到数据库中的方法.分享给大家供大家参考,具体如下: 1.创建导入抽象类 package com.gcloud.common.excel; impor ...

  9. mysql 连接差异_和你一起从 0 实现一个数据库差异对比工具

    对比数据的痛苦 不知道你是否也像我一样,在快乐编写代码的时候,必须进行一些数据库的数据对比工作. 诚然,一般的数据差异,比如是每一行的内容不同,市场上有比较成熟的 compare2 等对比工具. 但是 ...

最新文章

  1. 【Linux 内核 内存管理】Linux 内核堆内存管理 ② ( 动态分配堆内存方式 | brk 系统调用 | mmap 系统调用 | brk 系统调用源码介绍 )
  2. 数据库管理专才四步走
  3. C语言编译报错:incompatible pointer type [-Wincompatible-pointer-types](传参类型不匹配)
  4. GDCM:目录条目的测试程序
  5. optional空值判断_Java 8 Optional不仅用于替换空值
  6. 【无人机】德国初创企业利用AR障碍训练无人机操作员
  7. ERP核心业务流程和Oracle-ERP业务和数据对象分析
  8. mysql索引级别快慢_面试小点-MySQL 的两种索引方法如何提高查询速度
  9. RTB竞价中的cookie mapping技术
  10. envi安装成功教程 附下载地址
  11. 手把手教你Mac重装系统不再难:苹果电脑重装系统教程
  12. 苹果显示器(Apple Cinema Display)连接Windows的亮度调节方法(Win10可用)
  13. 服务器系统sm总线控制器驱动,sm总线控制器驱动
  14. 微分几何为何必然兴起?
  15. win10 使用IBM-kui链接kubectl
  16. 解决 Ubuntu 22.04 Fractional Scaling 画面伸缩后应用程序模糊
  17. Python函数嵌套/递归(七)-----详细
  18. RustDesk自建服务器在Windows Server 2019 上安装 保姆级教程
  19. 115道Java面试题及答案分享,java程序员赶紧收好
  20. 平面设计的福音,速看!

热门文章

  1. iPhone 6S GPU到底多强
  2. OpenGL 学习 显示列表
  3. sklearn自定义svm核函数(外部和内部定义)
  4. chrome扩展程序获取当前页面URL和HTML内容
  5. flex----其他交互设计
  6. VMWare 全屏后最小化死机
  7. 非IE浏览器下让界面变灰色
  8. autoreconnect mysql true_连接数据库超时设置autoReconnect=true
  9. linux没有那个文件或目录_Linux安装python faiss模块
  10. python不可实现的领域3d_岩土工程新手入门指南---FLAC3D学习指导与建议