[Apache commons系列]DBUtils简介-1.总述

  inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish )。

  一言蔽之,DbUtils就是让开发人员更方便的使用JDBC的工具类库,它不是任何一种框架或数据库。(来源:http://blog.csdn.net/inkfish)

  DbUtils作用有仨:
    1.丢一个SQL,给一个结果;
    2.把结果包装成Bean、Map、List或Object[]形式;
    3.关闭Connection、Statement、ResultSet时候无需写try catch,一行关闭。(来源:http://blog.csdn.net/inkfish)

  审视下面一段代码有何缺点:(来源:http://blog.csdn.net/inkfish)

Connection conn = null; Statement stmt = null; ResultSet rs = null; try { ………… } catch (SQLException ex) { ex.printStackTrace(); } finally { try { rs.close(); stmt.close(); conn.close(); } catch (SQLException ex) { ex.printStackTrace(); } }

  在这段代码中,如果rs.close()或stmt.close()出现SQLException,则会导致连接泄露,这是初学者常犯的毛病,正确的写法应该是:(来源:http://blog.csdn.net/inkfish)

Connection conn = null; Statement stmt = null; ResultSet rs = null; try { ………… } catch (SQLException ex) { ex.printStackTrace(); } finally { try { rs.close(); } catch (SQLException ex) { } try { stmt.close(); } catch (SQLException ex) { } try { conn.close(); } catch (SQLException ex) { } }

  显然这里代码过多,而如果最初级的使用DbUtils的效果就是:(来源:http://blog.csdn.net/inkfish)

Connection conn = null; Statement stmt = null; ResultSet rs = null; try { ………… } catch (SQLException ex) { ex.printStackTrace(); } finally { DbUtils.closeQuietly(conn, stmt, rs); }

  显然少了很多代码。(来源:http://blog.csdn.net/inkfish)

  强烈建议用到纯JDBC的项目使用该类库,而其他比如用到iBatis、Hibernate、JPA的项目可以绕道而行。什么样的项目会用到JDBC?
    1.通常初学者用JDBC比较多,只是初学者为了打实基础,练习阶段少用框架和帮助类库;
    2.小型项目,小型项目不需要太多的数据库操作,不需要考虑跨数据库兼容问题,用框架并不会让编码更简单;
    3.需要高效率的项目,无论iBatis、Hibernate,到了底下还是JDBC,直接用JDBC访问数据库无疑是最优的效率最高的方案。

(来源:http://blog.csdn.net/inkfish)

  2009年11月04日,DbUtils 1.3正式发布,与1.2相比,主要的变化的是对Java 1.5泛型和可变数组的支持,也就是说DbUtils 1.3必须运行于Java 1.5或更新的环境。

以下部分由官方网页翻译而来,官方主页地址:http://commons.apache.org/dbutils/index.html

Commons DbUtils: JDBC工具组件综述

  DbUtils是一个小型的类库,它设计用于使JDBC编程更加方便、简单。JDBC编程中,资源的关闭是显式的,极易导致编程错误,DbUtils把这些清理工作抽象出来,使得程序员编程时仅需要关心真正需要关心的,即:query和update数据。

DbUtils的一些优点:

  1.杜绝资源泄漏。修正JDBC代码并不困难,但是这是耗时而乏味的,这通常导致连接泄露并且难以跟踪到;
  2.清洁干净的持久化代码。大段的持久化数据到数据库代码彻底精简,剩下的代码清晰地表达了编码的意图。
  3.从ResultSet里自动组装JavaBean。你不再需要手工set每一行每一列的值到bean中,每一行数据都将会以一个Bean实例的形式出现。

DbUtils设计用于:

  1.Small - 你应该在短时间内理解所有的包的用途;
  2.Transparent - DbUtils在幕后并不做任何复杂的看似奇妙的工作,仅仅是你给一个查询,他去执行并且清理资源;
  3.Fast - 你并不需要n多个临时对象给DbUtils。

DbUtils并不是:

  1.一个对象/关系的桥梁 - 现在已经有很多优秀的O/R工具,DbUtils只是给决定用纯JDBC的开发场景使用的;
  2.数据访问对象(DAO)框架 - 虽然DbUtils能被用在DAO框架之中;
  3.一个面向对象的抽象的数据库对象,比如表、列或是主键;
  4.任何一种轻量级的框架 - DbUtils的目标仅是让程序员直接而方便的使用JDBC的帮助类库。

依赖

  DbUtils以一个独立的Jar包形式发布,仅仅依赖不低于1.5版本的Java。(来源:http://blog.csdn.net/inkfish)

你可能感兴趣的:(apache,框架,Hibernate,数据库,jdbc,ibatis)