`
cloudtech
  • 浏览: 4607608 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

JDK6笔记(5)----JDBC4(4)

 
阅读更多

JDK6笔记(5)----JDBC4(4)


1、利用批处理更新
要提高性能,JDBC API提供了一个批处理更新方式,它允许你一次进行多种更新。
Statement、PreparedStatement、CallableStatement都支持批处理更新方式。
2、在Statement对象中使用批处理更新
Statement对象可以用单个的执行语句对DBMS进行一系列的更新。
Statement对象在初始化时,仅进行空批处理list的初始化;因此你必须调用Statement.addBatch方法来增加SQL命令到Statement对象。SQL命令必须返回一个update count,而不是别的任何类型。
要更好地处理批处理命令,你应该总是设置auto-commit(自动提交)为false,因此DBMS驱动只会在你告诉它需要做时它才进行提交。
这就给了一个清除批处理命令的chance,你可以使用Statement.clearBatch()方法来做,它将把Statement对象的所有批处理命令list。
如果批处理命令成功执行了,它将自动清除list。
当Statement.executeBatch()成功执行后,将返回一个update count的队列。它包含下面的东东:
1)为0或更大的值,它意味着命令得到了成功的处理。如果值大于0,它表示命令在执行后,受到影响的行数。
2)一个Statement.SUCCESS_NO_INFO,意味着特别的命令得到了成功处理。但是,它不包含任何信息,如受影响的行数等。
如果批处理命令执行失败,将抛出BatchUpdateException错误。某些数据库驱动可以继续进行下面的命令,但很多则是停止执行。
不是所有的JDBC驱动器都支持批处理更新。故在使用时你要注意看你的driver是否支持batch update。
如果你不清楚,用DatabaseMetaData.supportsBatchUpdates()方法来查看。
见下面一个例子:
try{
//Make sure that autocommit is off
cConn.setAutoCommit(false);
//Retrieve metadata info about the data source
DatabaseMetaData dbmData=cConn.getMetaData();
//Make sure our driver supports batch updates
if(dbmData.supportsBatchUpdates()){
Statement sStatement=cConn.createStatement();
//Add batch commands
sStatement.addBatch("INSERT INTO TEAMS VALUES ('Tom')");
sStatement.addBatch("INSERT INTO TEAMS VALUES ('Roger')");
sStatement.addBatch("INSERT INTO TEAMS VALUES ('Jon')");
sStatement.addBatch("INSERT INTO TEAMS VALUES ('Julia')");
sStatement.addBatch("INSERT INTO TEAMS VALUES ('George')");
int[] uCounts=sStatement.executeBatch();
//Commit the changes
cConn.commit();
}else{
System.err.print("Your driver does not support batch updates!")
}
}catch(BatchUpdateException batchEx){
int[] uCounts=batchEx.getUpdateCounts();
for(int i=0;i<uCounts.length;i++)
System.err.print("Count #"+i+"="+uCounts[i]+"/n");
}
}

3、在PreparedStatement对象中使用Batch Update
基本上与Statement中的方法相同,见下面的例子:
try{
//Make sure that autocommit is off
cConn.setAutoCommit(false);
//Retrieve metadata info about the data source
DatabaseMetaData dbmData=cConn.getMetaData();
//Make suer our driver supports batch updates
if(dbmData.supportsBatchUpdates()){
PrparedStatement psStatement=cConn.prepareStatement("INSERT INTO TEAMS VALUES(?)");
//Set the IN parameter
psStatement.setString(1l"Jennie Vitale");
//Add batch command
psStatement.addBatch();
//Set the IN parameter for the next command
psStatement.setString(1,"Andrew Vitale");
//Add batch command
psStatement.addBatch();
int[] uCounts=psStatement.executeBatch();
//Commit the changes
cConn.commit();
}else{
System.err.print("Your driver does not support batch updates!");
}
}catch(BatchUpdateException batchEx){
}

分享到:
评论

相关推荐

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    著作:《java jdk 5.0学习笔记》、《java se 6技术手册》、《spring技术手册》等 译作:《ajax实战手册》、《jquery实战手册(第2版)》 个人网站:http://openhome.cc 目录 《java jdk 7学习笔记》 chapter1 ...

    Java学习笔记7.0

    《Java JDK6学习笔记》是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型...

    Jmeter 介绍和安装笔记

    Jmeter 介绍和安装笔记 Jmeter 介绍和安装笔记 Jmeter 介绍 JMeter 是apache 开源的性能测试工具。Jmeter 最初的想法是用来做web 自动化 测试...4、Jmeter 部署笔记简单 5、资料笔记少,纯英文 6、入门比较简单,上手快

    JavaEE 学习笔记

    5.本地成功使用JDBC连接Mysql,并读取数据 :black_small_square:具体实现 一,本地安装Java环境 在官网下载JDK(Java Development Kit) 1.首先我们需要进入官网下载jdk 官网网址:...

    Anynote_distancejck_jsp个人笔记_

    个人笔记平台环境要求1、jdk1.6+2、mysql5.0+3、apache-tomcat-6.0+安装方法1、将压缩包中的Anynote.war文件拷贝到Tomcat的webapps目录下, 启动Tomcat后,会自动生成Anynote文件夹;2、如果使用Mysql,创建UTF-8...

    水木清华站∶Java版精华区 含jsp及js等集合.chm

    [目录]Java学习笔记(推荐) 6. [目录]JDBC文档 7. [目录]RMI 文档 2. [目录]Java资源(文档-书籍-下载-注册码) 1. [目录]License 和注册码 2. [目录]好书推荐 3. [目录]关于Java的...

    2020/2/19学习笔记-day01

    JDBC:java代码里面用程序进行操作数据库(比较底层的代码实现) ​ MyBatis框架:对数据库进行封装 ​ JAVA EE:核心是JSP、SERVLET ​ Spring框架:JAVA EE体系最重要的框架 ​ Redis:数据库的读写,属于一种内存...

    图书商城系统资料+源码+笔记 非常适合学习

    JSTL + JSP + Servlet + JavaBean + BeanUtils + FileUpload + JavaMail + DBUtils(JDBC) + C3P0 + MySQL + MyEclipse10+ Tomcat7.0 + JDK6 + Windows MVC 模式 JavaEE 三层结构 web层 service层 dao层 DAO 模式

    动力节点Java基础301集_史上最全的Java基础教程

    4: 源码分析分析讲的特别到位,尤其是HashMap的工作原理和源码分析,真正的把jdk源码翻了一遍,要是拿着这个去面试绝对是秒杀级神器。 5:使用多线程模拟用户去ATM取钱讲的也非常不错,后续还提了一个小Timer定时任务...

    Online-Food-Delivery:VTU CBCS下的第五个SEM DBMS迷你项目

    安装NetBeans IDE 8和JDK 1.8及更高版本。 下载ojdbc6,以实现前端和后端的连接。 下载 OR 导入 将图像用于前端。 输出 步骤1:首页 步骤2:登录页面 步骤3:OFD 步骤4:员工访问 步骤5:员工信息 步骤6:...

    springmybatis

    mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。 首先建立一个名字为 MyBaits 的 dynamic web project 1. 现阶段,你可以...

    SomeJava:将以往项目应用中各种框架、中间件的使用方式抽取出来,希望以后给刚接触直接运行,入门参考。。

    ###技术笔记 慢慢整理成博客: ###tomcat Tomcat6 6版本是个经典,自己整理可以跑起来的Tomcat代码,阅读学习。 tomcat-work 是《How Tomcat Works》的代码,可惜是Jdk1.4的,也可以作为学习用。 ###分布式小框架...

    security-poc:使用Spring Security

    JDK 14 Maven的3.6 特征 身份验证(不同的配置文件)和授权 JSP + JSTL Apache Tiles(HTML模板) 执行器 (当前)没有测试-&gt;因此质量门操作失败 个人资料 类型 Maven个人资料 Spring简介 密码编码器 笔记 内存中...

    bank-for-pros

    JDBC HTML和CSS 内置 玛文 Tomcat MySQL 执行 您可以访问该网站,为以查看已部署的应用程序。 要在本地运行该应用程序,您需要在计算机上安装JDK 8和Tomcat 9.0.41。 而且,您需要在Tomcat主页中的POM文件中声明...

    JAVA学生成绩管理系统毕业设计源码+需求分析+系统设计+使用说明+导入配置+运行截图等详细资料

    JAVA学生成绩管理系统源码+需求分析+系统设计+使用说明+导入配置+运行截图等详细资料; 1、系统功能菜单: 1)管理员功能菜单(学生信息管理、...系统采用技术:Servlet+Jsp+Jdbc+H-ui+EasyUI+jQuery+Ajax+面向接口编程

    java文集

    正则表达式 lucene索引合并 探查Weblogic JDBC Multipool 问题 struts通用Exception处理 Grails中默认数据库HSQLDB点滴 从request获取各种路径总结 DIV实现的表格自动伸张与收缩 java 邮件...

    JPA深度刘宝宝剖析版第一讲

    ORM 映射元数据:JPA 支持 XML 和 JDK 5.0 注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。 JPA 的 API:用来操作实体对象,执行CRUD操作,框架在后台完成所有...

Global site tag (gtag.js) - Google Analytics