jdbc操作mysql延时操作_关于jdbc通过Statement和PrepareStatement进行数据库批处理操作,以提供程序效率...
前言
关于程序执行延时过长,很大部分来源于数据建立连接延时及连接池上限等到可用连接演示,如果能减少与数据库建立连接的次数,无疑提高了系统的执行效率,关于这一点可以将相关的频繁的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进行数据库批处理操作,以提供程序效率...相关推荐
- jdbc mysql 源码_【JDBC系列】从源码角度理解JDBC和Mysql的预编译特性
背景 最近因为工作调整的关系,都在和数据库打交道,增加了许多和JDBC亲密接触的机会,其实我们用的是Mybatis啦.知其然,知其所以然,是我们工程师童鞋们应该追求的事情,能够帮助你更好的理解这个技术 ...
- mysql桥梁表_以JDBC为桥梁入门MySQL数据库基础
MySQL入门代码,以JDBC为桥梁 1.[代码][Java]代码 /* * 张泽旺编写,SYSU * 2015-4-28 */ import java.sql.Connection; import ...
- C mysql批量写入_使用JDBC在MySQL数据库中快速批量插入数据
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: Adds a set of ...
- jdbc连接mysql传参_将参数传递给JDBC PreparedStatement
我正在尝试为我的程序制作验证类.我已经建立了与MySQL数据库的连接,并且已经在表中插入了行.该表由firstName,lastName和userID领域.现在,我想通过构造函数的参数在数据库中选择特 ...
- linux 操作mysql 数据库命令_在Linux上用命令怎么连接数据库
展开全部 以常见的mysql和oracle这两种数据库为例: 一.连接mysql(mysql服务已开启) 1.mysql数据库安装32313133353236313431303231363533e58 ...
- jdbc连接mysql的配置文件_如何实现jdbc连接数据库并通过配置文件调用数据的方法(代码)...
本篇文章给大家带来的内容是关于如何实现jdbc连接数据库并通过配置文件调用数据的方法(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Dbutil类 package com. ...
- gcc操作mysql 建表_用gcc批量建mysql库表
用gcc批量建mysql库表 2007-6-1文字大小:大中小 file 1 my.c //------------------------------------------------------ ...
- java操作mysql导表_Java实现批量导入excel表格数据到数据库中的方法
本文实例讲述了Java实现批量导入excel表格数据到数据库中的方法.分享给大家供大家参考,具体如下: 1.创建导入抽象类 package com.gcloud.common.excel; impor ...
- mysql 连接差异_和你一起从 0 实现一个数据库差异对比工具
对比数据的痛苦 不知道你是否也像我一样,在快乐编写代码的时候,必须进行一些数据库的数据对比工作. 诚然,一般的数据差异,比如是每一行的内容不同,市场上有比较成熟的 compare2 等对比工具. 但是 ...
最新文章
- 【Linux 内核 内存管理】Linux 内核堆内存管理 ② ( 动态分配堆内存方式 | brk 系统调用 | mmap 系统调用 | brk 系统调用源码介绍 )
- 数据库管理专才四步走
- C语言编译报错:incompatible pointer type [-Wincompatible-pointer-types](传参类型不匹配)
- GDCM:目录条目的测试程序
- optional空值判断_Java 8 Optional不仅用于替换空值
- 【无人机】德国初创企业利用AR障碍训练无人机操作员
- ERP核心业务流程和Oracle-ERP业务和数据对象分析
- mysql索引级别快慢_面试小点-MySQL 的两种索引方法如何提高查询速度
- RTB竞价中的cookie mapping技术
- envi安装成功教程 附下载地址
- 手把手教你Mac重装系统不再难:苹果电脑重装系统教程
- 苹果显示器(Apple Cinema Display)连接Windows的亮度调节方法(Win10可用)
- 服务器系统sm总线控制器驱动,sm总线控制器驱动
- 微分几何为何必然兴起?
- win10 使用IBM-kui链接kubectl
- 解决 Ubuntu 22.04 Fractional Scaling 画面伸缩后应用程序模糊
- Python函数嵌套/递归(七)-----详细
- RustDesk自建服务器在Windows Server 2019 上安装 保姆级教程
- 115道Java面试题及答案分享,java程序员赶紧收好
- 平面设计的福音,速看!