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

ben720

ben720

2016-02-19 15:42

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是Java开发中使用Oracle数据库的一点提醒,一起来学习了解下吧!

  很多朋友在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。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
Java开发中使用Oracle数据库的一点提醒

在ASP中使用Oracle数据库

ASP
在ASP中使用Oracle数据库

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

使用中型Access数据库的一点经验

编程语言 网络编程
使用中型Access数据库的一点经验

3.3 在ASP中使用Oracle数据库

Web开发
3.3 在ASP中使用Oracle数据库

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在ASP中使用Oracle数据库技巧

ASP
在ASP中使用Oracle数据库技巧

Access数据库的一点经验

编程语言 网络编程
Access数据库的一点经验

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

两步轻松快速清除系统垃圾

两步轻松快速清除系统垃圾

模仿jQuery each函数的链式调用

模仿jQuery each函数的链式调用
下拉加载更多内容 ↓