`
iloveoracle
  • 浏览: 113702 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

dbutils

    博客分类:
  • java
阅读更多
    dbutils is a small set of classes designed to make working with jdbc easier. jdbc resource cleanup code is mundane, error prone work so these classes abstract out all of the cleanup tasks from your code leaving you with what you really wanted to do with jdbc in the first place: query and update data.

some of the advantages of using dbutils are:

    * no possibility for resource leaks. correct jdbc coding isn't difficult but it is time-consuming and tedious. this often leads to connection leaks that may be difficult to track down.
    * cleaner, clearer persistence code. the amount of code needed to persist data in a database is drastically reduced. the remaining code clearly expresses your intention without being cluttered with resource cleanup.
    * automatically populate javabean properties from resultsets. you don't need to manually copy column values into bean instances by calling setter methods. each row of the resultset can be represented by one fully populated bean instance.

dbutils is a very small library of classes so it won't take long to go through the javadocs for each class. the core classes/interfaces in dbutils are queryrunner and resultsethandler. you don't need to know about any other dbutils classes to benefit from using the library.

each of the provided resultsethandler implementations accept a rowprocessor to do the actual conversion of rows into objects. by default the handlers use the basicrowprocessor implementation but you can implement a custom version to plug in. probably the most common customization is to implement the tobean() method to handle custom database datatype issues.

basicrowprocessor uses a beanprocessor to convert resultset columns into javabean properties.

you can do one of the following to map these columns to bean properties:

   1. alias the column names in the sql so they match the java names: select social_sec# as socialsecuritynumber from person
   2. subclass beanprocessor and override the mapcolumnstoproperties() method to strip out the offending characters.


common dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成list。
dbutils包括3个包:org.apache.commons.dbutilsorg.apache.commons.dbutils.handlersorg.apache.commons.dbutils.wrappersdbutils封装了对jdbc的操作,简化了jdbc操作,可以少写代码。 org.apache.commons.dbutilsdbutils 关闭链接等操作queryrunner 进行查询的操作 org.apache.commons.dbutils.handlersarrayhandler :将resultset中第一行的数据转化成对象数组arraylisthandler将resultset中所有的数据转化成list,list中存放的是object[]beanhandler :将resultset中第一行的数据转化成类对象beanlisthandler :将resultset中所有的数据转化成list,list中存放的是类对象columnlisthandler :将resultset中某一列的数据存成list,list中存放的是object对象keyedhandler :将resultset中存成映射,key为某一列对应为map。map中存放的是数据maphandler :将resultset中第一行的数据存成map映射maplisthandler :将resultset中所有的数据存成list。list中存放的是mapscalarhandler :将resultset中一条记录的其中某一列的数据存成object org.apache.commons.dbutils.wrapperssqlnullcheckedresultset :对resultset进行操作,改版里面的值stringtrimmedresultset :去除resultset中中字段的左右空格。trim()
主要方法:

dbutils类:启动类
resultsethandler接口:转换类型接口
maplisthandler类:实现类,把记录转化成list
beanlisthandler类:实现类,把记录转化成list,使记录为javabean类型的对象
qrery runner类:执行sql语句的类

jdbc关于操作数据库的类,如果我们使用完毕之后就必须关闭。而且在操作数据类里面写了大量的业务逻辑(如增删查改),当一个类业务逻辑牵涉的太多,耦合度相对比较高,结果集难以处理,当我们拿到一个resultset结果集,用while循环一个一个读出来,再转换成javabean,最后形成list,太麻烦了。而且到处都抛sqlexception,又要捕获异常。造成代码复杂,可读性差,繁琐,不易于维护,有影响代码的美观性,最重要的是互用性不高。dbutils给我们解决了一系列的问题:dbutils是一个为简化jdbc操作的小类库,轻量级封装了jdbc。会自动关闭数据库连接,从而我们不用担心数据库的资源问题 dbutils库里很多类定义业务逻辑,如果子类直接继承它, 使类的业务逻辑简单了,也减少了jdbc代码的重复问题。使代码的可读性更强,互用性更高了!dbutils的处理流程: 它通过datasource得到得到一个连接, 拿到结果集,  再通过结果集得到元数据类型, 通过反射拿到我们传入进来的对象的元数据, 再通过反射对它们进行相应的转换。生成一个bean, 如果需要对象的话,直接返回,如果是其他的我们在进行相应的处理dbutils库里面有三个最主要的类: queryrunner:通过构造方法,得到一个数据库连接,数据库的操作都是通过这个类来完成的。 resultsethandler:转换类型接口(主要把我们数据的结果集通过一系列的处理转换成java对象) resetsethandler 的实现类有很多种, 涉及数组,map javabean等, 所有的实现类都接受一个rowprocessor类型的参数来实现数据列向对象的转化。其中rowprocessor的默认实现类为 basicrowprocessor, 用户也可以自己实现rowprocessor。basicrowprocessor使用beanprocessor来完成resultset中的值向javabean的映射。前提要求列名和 bean属性名必须一致。所有的数据库结果集转换成bean,list,map都是通过他的实现类来处理的。


util是一个非常小的类包, 无需花费太多时间去阅读它的doc, 核心类(接口)为queryrunner 和resetsethandler。 resetsethandler 的实现类有很多种, 涉及数组, map , javabean, 等等, 所有的实现类都接受一个rowprocessor类型的参数来实现数据列向对象的转化。其中rowprocessor的默认实现类为 basicrowprocessor, 用户也可以自己实现rowprocessor。 basicrowprocessor使用beanprocessor来完成resultset中的值向javabean的映射。前提要求列名和bean属性名必须一致。 但是在大部分情况下,数据库的列名中常含有一个些特殊字符,这些字符在java命名规约中又不能使用,针对上述情况,有如下2种解决办法:  1)sql语句中使用as 。 如 select na#me as name;  2) 继承beanprocessor并覆盖mapcolumnstoproperties()以便跳过那些违背java命名规约的字符。 beanprocessor.java public object tobean(resultset rs class type) {              //确定column要转化成的类型,并以数组形式存储。 mapcolumntoproperties(); //组装bean并返回 createbean() {        // 依照前面数组中存储的形式,将column进行相应的转化     processcolumn()     //运用反射 设值     callsetter() }           }


 
0
3
分享到:
评论

相关推荐

    dbutils dbutils dbutils dbutils

    dbutils dbutils dbutils dbutils

    commons-dbutils-1.7-API文档-中文版.zip

    赠送jar包:commons-dbutils-1.7.jar; 赠送原API文档:commons-dbutils-1.7-javadoc.jar; 赠送源代码:commons-dbutils-1.7-sources.jar; 赠送Maven依赖信息文件:commons-dbutils-1.7.pom; 包含翻译后的API文档...

    commons-dbutils-1.6.jar包

    包org.apache.commons.dbutils DbUtils是一个为简化JDBC操作的小类库. 接口摘要 ResultSetHandler 将ResultSet转换为别的对象的工具. RowProcessor 将ResultSet行转换为别的对象的工具. 类摘要 BasicRowProcessor ...

    commons-dbutils-1.7-API文档-中英对照版.zip

    赠送jar包:commons-dbutils-1.7.jar; 赠送原API文档:commons-dbutils-1.7-javadoc.jar; 赠送源代码:commons-dbutils-1.7-sources.jar; 赠送Maven依赖信息文件:commons-dbutils-1.7.pom; 包含翻译后的API文档...

    Commons-dbutils1.7 jar包.rar

    commons-dbutils包是Apache开源组织提供的用于操作数据库的工具包。简单来讲,这个工具包就是用来更加方便我们操作数据库的,最近工作中使用了一下,感觉确实方便很多,基本告别自己封装JDBC代码对数据库进行增删改...

    python类DBUtils安装包

    DBUtils 是一套允许线程化 Python 程序可以安全和有效的访问数据库的模块。DBUtils已经作为 Webware for Python 一部分用来结合 PyGreSQL 访问 PostgreSQL 数据库,当然他也可以用在其他Python应用程序中来访问 DB-...

    commons-dbutils-1.7.zip

    dbutils

    commons-dbutils-1.7.jar

    commons-dbutils-1.7.jarcommons-dbutils-1.7.jarcommons-dbutils-1.7.jar

    DBUtils操作数据库以及事物的管理

    DBUtils操作数据库以及事物的管理

    DbUtils应用开发例子--DbUtilsExample.zip

    Apache Common DbUtils是操作数据库的组件,对传统操作数据库的类(JDBC)进行二次封装,可以把结果集转化成List。 DbUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。 应用实践小结: 一、...

    commons-dbutils-1.4.jar

    commons-dbutils-1.4.jar

    C3P0和DButils

    c3p0-0.9.1.2.jar、commons-dbutils-1.4.jar、mysql-connector-java-5.1.39-bin.jar

    commons-dbutils.jar.rar

    commons-dbutils.jar jdbc工具类jar包 1.3、1.6、1.7三个版本

    python-dbutils 简单封装

    python dbutils 简单封装

    commons-dbutils-1.3.zip

    这里分享的是commons-dbutils-1.3,解压打开导入commons-dbutils-1.3.jar即可

    commons-dbutils-1.7

    Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能

    dbutils + oracle 增删改查批量插入示例

    1、包含示例war包、文件夹 2、示例所需要的SQL语句 3、dbutils开发包及其源码 4、eclipse + oracle 测试通过

    commons-dbutils-1.6

    commons-dbutils-1.6,含bin与src两个jar

    commons-dbutils-1.7.rar

    commons-dbutils-1.7.jar,commons-dbutils-1.7-javadoc.jar,commons-dbutils-1.7-sources.jar,commons-dbutils-1.7-tests.jar,commons-dbutils-1.7-test-sources.jar

Global site tag (gtag.js) - Google Analytics