网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.ORACLE在HP-UX下的系列问题处理(.
.实例讲解Oracle数据库自带的几个.
.深入讲解ORA-00600 2262错误的解.
.[Oracle] 几本重要的电子图书下载.
.ORACLE9IAS在redhat linux as 2..
.一次对Block的 Dump过程.
.ORACLE在HP-UX下的系列问题处理(.
.Oracle数据库exp imp按用户导出导.
.8i中回滚段使用和ORA-1555.
.利用ORACLE系统账户默认口令提升.
.oracle 中的常用命令重点展播.
.分页技术:Oracle rownum新发现!.
.Oracle 常见问答.
.Oracle 最具伸缩性和成本效益的数.
.深入探讨ORA-04031的产生原因及解.
.Oracle快速删除数据字典管理的表.
.Oracle FAQ 之构架体系篇.
.简析Oracle Online Redo LogFile.
.Oracle817 版本 不同字符集之间的.
.oracle 使用杂记1.

Java开发中使用Oracle数据库的一点提醒

发表日期:2008-2-9



  很多朋友在Java开发中,使用Oracle数据库的时候,经常会碰到有ORA-01000: maximum open cursors exceeded的错误。
  
  实际上,这个错误的原因,主要还是代码问题引起的。
  
  ora-01000: maximum open cursors exceeded.
  
  表示已经达到一个进程打开的最大游标数。
  
  这样的错误很轻易出现在Java代码中的主要原因是:Java代码在执行conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor。尤其是,假如你的createStatement和prepareStatement是在一个循环里面的话,就会非常轻易出现这个问题。因为游标一直在不停的打开,而且没有关闭。
  
  一般来说,我们在写Java代码的时候,createStatement和prepareStatement都应该要放在循环外面,而且在使用了这些Statment后要及时关闭。最好是在执行了一次executeQuery、executeUpdate等操作之后,假如不需要使用结果集(ResultSet)的数据,就马上将Statment关闭。
  
  对于出现ORA-01000错误这种情况,单纯的加大open_cursors并不是好办法,那只是治标不治本。实际上,代码中的隐患并没有解除。
  
  而且,绝大部分情况下,open_cursors只需要设置一个比较小的值,就足够使用了,除非有非常非凡的要求。实际上不管连什么数据库,都要记得及时关掉不需要再用的连接。
  
  Java连结Oracle时常犯的错误列举:
  
  1. 只懂 createStatement,不懂关闭statement;
  
  2. 只懂 createStatement,不懂preparedStatement;
  
  3. 只懂在sql里用to_date,甚至直接用String,不懂用setDate()。
  
  Statement每execute一次,就在数据打开一个新的游标。使用多次后再close会有未关闭的游标留下,所以一定要记得在每次执行并取完记录集后,立即close。
上一篇:Oracle数据库构造给据邮件跟踪查询系统 人气:711
下一篇:在JAVA中连接Oracle数据库(例子) 人气:740
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐