快速业务通道

热门数据库JDBC驱动试用心得 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
置数据库事务方式

当数据库连接成功之后,需要设定连接的事务方式(前提是该数据库平台支持事务处理)为非自动提交,因为JDBC函数默认为自动提交。

提交过于频繁,就会使数据库操作的效率较低。特别是对于Oracle这种绝对支持事务处理的数据平台而言,设置是否自动提交对系统的效率将有很大的影响。

4.采用批处理方式插入记录

同样一个考虑效率的操作,循环地执行操作语句(Insert,Update)也会增加很多不必要地开销。试例中采用了批量处理的方式,通过这种方式将要进行的操作先进行汇总,再批量提交执行。这样就可以获得较高的执行效率。

//Insert records for(int i = 0; i < RECORD_COUNT; ++i) { //Add each operation to batch if(FoolDB.addBatch(execStat, “insert into user_info values(''guest” + Integer.toString(i + 1) + “'', ''666666'', ''我是中国人'')”) == false) …… FoolDB.execBatch(execStat); //Execute batch operations FoolDB.commit(conn); FoolDB.setAutoCommit(conn, true);

这种批处理的方式,可以视同预处理,通过统合批量的操作来减少与数据库的交互频率,也减少数据库访问IO设备的频率,从而也可获得较高的效率。

热门数据库JDBC驱动试用心得(4)

时间:2011-03-23

5.使用行游标读取记录字段

记录插入完毕之后,通过执行查询语句来获取数据集。然后再通过简化函数moveNext来逐行读取结果集的记录行:

//Select from table String sql = "select * from user_info"; if( (queryRS = FoolDB.openQuery(queryStat, sql)) == null) { … } … while(FoolDB.moveNext(queryRS) == true) { //Field ui_id, text(64) type FoolDB.getFieldByName(queryRS, “ui_id”); //Field ui_passwd, text(64) type FoolDB.getFieldByName(queryRS, “ui_passwd”); //Field ui_real_name, text(64) type FoolDB.getFieldByName(queryRS, “ui_real_name”); }

实际上,moveNext的函数名也来源于ADO(在作者看来,JDBC和ADO的应用方式是相同的)。

6.关闭数据库

这里主要对以嵌入式模式运行的JavaDB的关闭进行说明,其他数据库的关闭,直接采用简化后的关闭函数(closeDB)即可。

在嵌入式模式,应用程序退出时就必须关闭数据库。但是如果应用程序关闭数据库失败,当JVM退出时不会对该未被关闭的连接进行检查,这样就占用了数据库的连接资源,就会影响后续的连接执行效率。所以Apache Derby的建议是采用URL的方式显示地关闭数据库。以下是关键代码:

FoolDB.closeDB(conn); //Close connection if(framework.equals("embedded") == true) //If in embedded mode { //Use URL to shutdown Derby if(FoolDB.openDB("jdbc:derby:;shutdown=true", null, null) == null) { //If shutdown failure means that Derby already shutdown isShutdownOk = true; } if (isShutdownOk == false) //Not shutdown normally { System.out.println("Derby shutdown NG."); } }

注意:关闭和判断Derby数据库是否正常关闭的连接字符串中是不包含数据库名的。

7.记录各步骤操作的时间戳

以上的操作中,在各个步骤之间添加了时间戳,以此来记录各个数据库平台的执行耗费。

热门数据库JDBC驱动试用心得(5)

时间:2011-03-23

五、结果及分析

热门数据库JDBC驱动试用心得 - 编程入门网

在对试用结果进行评价之前,读者需要考虑各款数据库平台的特点,而不能简单地从执行时间的长短来进行判断,以下是笔者根据开发经验总结出的需要注意的地方:

(1)要保证JDBC驱动和数据库平台的连接是无缝的。例如Oracle和Ja

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号