首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

[转] JDBC优化对策总结

2012-11-20 
[转] JDBC优化策略总结最近在java中国上面看到一篇关于JDBC的文章总结,借来看看,转一下,以备学习之用。?jav

[转] JDBC优化策略总结

最近在java中国上面看到一篇关于JDBC的文章总结,借来看看,转一下,以备学习之用。

?

java.sql.ResultSet static int CLOSE_CURSORS_AT_COMMIT                        该常量指示调用 Connection.commit 方法时应该关闭 ResultSet 对象。    static int CONCUR_READ_ONLY                        该常量指示不可以更新的 ResultSet 对象的并发模式。    static int CONCUR_UPDATABLE                        该常量指示可以更新的 ResultSet 对象的并发模式。    static int FETCH_FORWARD                          该常量指示将按正向(即从第一个到最后一个)处理结果集中的行。   static int FETCH_REVERSE                        该常量指示将按反向(即从最后一个到第一个)处理结果集中的行处理。    static int FETCH_UNKNOWN                        该常量指示结果集中的行的处理顺序未知。    static int HOLD_CURSORS_OVER_COMMIT                         该常量指示调用 Connection.commit 方法时不应关闭 ResultSet 对象。    static int TYPE_FORWARD_ONLY                        该常量指示指针只能向前移动的 ResultSet 对象的类型。    static int TYPE_SCROLL_INSENSITIVE                        该常量指示可滚动但通常不受其他的更改影响的 ResultSet 对象的类型。    static int TYPE_SCROLL_SENSITIVE                        该常量指示可滚动并且通常受其他的更改影响的 ResultSet 对象的类型。
??
说明下:

??????? 结果集分两种类型:只读和可更改,只读的话,更省内存,查询的结果集不能更改。如果结果集在查询后,更改了值又要保存,则使用可更改结果集。

  结果集的游标也有两种类型:如果没必要让游标自由滚动,则选择单方向移动的游标类型。

  对于是否并发操作:如果不需要考虑线程安全,则选择忽略并发的结果集类型,否则选择并发安全的类型。

  另外,还要控制结果的大小,几乎所有的数据库都有查询记录条数控制的策略,可以海量数据进行分批处理,一次一批,这样不至于把系统搞死。

  7、事物优化--如果数据库不支持事物,就不要写回滚代码,如果不考虑事物,就不要做事务的控制。

  8、安全优化--管理好你的Connection对象,在异常时候能“入池”或者关闭。因此应该将Connection释放的代码写在异常处理的finally块中。

  9、异常处理优化--不要轻易吞噬SQLException,对于DAO、Service层次的数据访问,一般在DAO中跑出异常,在Service中处理异常。但DAO中也可以处理异常,并做转义抛出,不要随便抛出RuntimeExeption,因为这是JVM抛出的,不需要你可以去抛出,因为RuntimeException往往会导致系统挂起。

  10、代码高层优化--在以上的基础上,优化封装你的数据访问方式,尽可能让代码简洁好维护,如果你还觉得性能不行,那就该从整个系统角度考虑优化了,比如加上缓存服务器,集群、负载均衡、优化数据库服务器等等,以获取更好的系能。

  




本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/225828

?

先记一下,明天再研究。感谢原创。

?

张文海

热点排行