﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-网摘-文章分类-iBATIS</title><link>http://www.blogjava.net/jvict/category/33907.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 22 Apr 2010 15:34:25 GMT</lastBuildDate><pubDate>Thu, 22 Apr 2010 15:34:25 GMT</pubDate><ttl>60</ttl><item><title>Apache Commons DbUtils 快速上手 </title><link>http://www.blogjava.net/jvict/articles/318674.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Sun, 18 Apr 2010 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/318674.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/318674.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/318674.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/318674.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/318674.html</trackback:ping><description><![CDATA[<div><a href="http://java.chinaitlab.com/advance/796954.html">原文：http://java.chinaitlab.com/advance/796954.html</a><br />
另文：<a href="http://topmanopensource.javaeye.com/blog/348863">http://topmanopensource.javaeye.com/blog/348863</a><br />
Hibernate太复杂，iBatis不好用，JDBC代码太垃圾，DBUtils在简单与优美之间取得了完美平衡。</div>
<div>&nbsp;</div>
<div><strong>一、概述</strong></div>
<div>&nbsp;</div>
<div>DbUtils小巧的<a class="channel_keylink" href="http://java.chinaitlab.com/" target="_blank">Java</a>数据库操作工具，它在JDBC的基础上做了科学的封装，旨在简化JDBC代码混乱与重复。</div>
<div>&nbsp;</div>
<div>对于JDBC代码，存在很多问题，算是对<a class="channel_keylink" href="http://java.chinaitlab.com/" target="_blank">Java</a>的批判：</div>
<div>1、操作过程复杂，代码操作一个模式，大量的重复。</div>
<div>2、结果集难以处理，拿到一个ResultSet干屁啊，一个一个度，转称JavaBean，后来形成List，太麻烦了。</div>
<div>3、到处都强制检查SQLException，烦不烦啊，影响代码的美观和可读性。</div>
<div>&nbsp;</div>
<div>当然，以上的批判不是说JDBC设计不合理，二是缺乏更高层操作API的支持。因此才产生了众多的开源数据库操作的框架和工具包。</div>
<div>&nbsp;</div>
<div><strong>二、熟悉DBUtils的API</strong></div>
<div>&nbsp;</div>
<div>针对DBUitlsAPI的包，做个简单的翻译，以便迅速掌握API的使用。</div>
<div>
<div style="border-right: #aaaaaa 1px solid; padding-right: 5px; border-top: #aaaaaa 1px solid; padding-left: 5px; padding-bottom: 5px; border-left: #aaaaaa 1px solid; padding-top: 5px; border-bottom: #aaaaaa 1px solid; background-color: #fffafa">
<div>1、------------------------------------<br />
包org.apache.commons.dbutils <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DbUtils是一个为简化JDBC操作的小类库。</div>
<div>接口摘要<br />
ResultSetHandler 将ResultSet转换为别的对象的工具。<br />
RowProcessor 将ResultSet行转换为别的对象的工具。&nbsp; </div>
<div>类摘要<br />
BasicRowProcessor RowProcessor接口的基本实现类。 <br />
BeanProcessor BeanProcessor匹配列明到Bean属性名，并转换结果集列到Bean对象的属性中。<br />
DbUtils 一个JDBC辅助工具集合。 <br />
ProxyFactory 产生JDBC接口的代理实现。 <br />
QueryLoader 属性文件加载器，主要用于加载属性文件中的 SQL 到内存中。 <br />
QueryRunner 使用可插拔的策略执行SQL查询并处理结果集。<br />
ResultSetIterator 包装结果集为一个迭代器。 <br />
&nbsp; <br />
2、------------------------------------<br />
包org.apache.commons.dbutils.handlers <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultSetHandler接口的实现类 </div>
<div>类摘要<br />
AbstractListHandler 将ResultSet转为List的抽象类<br />
ArrayHandler 将ResultSet转为一个Object[]的ResultSetHandler实现类<br />
ArrayListHandler 将ResultSet转换为List&lt;Object[]&gt;的ResultSetHandler实现类<br />
BeanHandler 将ResultSet行转换为一个JavaBean的ResultSetHandler实现类<br />
BeanListHandler 将ResultSet转换为List&lt;JavaBean&gt;的ResultSetHandler实现类<br />
ColumnListHandler 将ResultSet的一个列转换为List&lt;Object&gt;的ResultSetHandler实现类<br />
KeyedHandler 将ResultSet转换为Map&lt;Map&gt;的ResultSetHandler实现类<br />
MapHandler 将ResultSet的首行转换为一个Map的ResultSetHandler实现类<br />
MapListHandler 将ResultSet转换为List&lt;Map&gt;的ResultSetHandler实现类<br />
ScalarHandler 将ResultSet的一个列到一个对象。</div>
<div>&nbsp;</div>
<div>3、------------------------------------<br />
包org.apache.commons.dbutils.wrappers <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加java.sql类中功能包装类。</div>
<div>类摘要<br />
SqlNullCheckedResultSet 在每个getXXX方法上检查SQL NULL值的ResultSet包装类。<br />
StringTrimmedResultSet 取出结果集中字符串左右空格的ResultSet包装类。<br />
</div>
</div>
</div>
<div>&nbsp;</div>
<div><strong>三、环境</strong></div>
<div>&nbsp;</div>
<div>Java5</div>
<div>commons-dbutils-1.2-bin.zip</div>
<div>mysql-noinstall-5.1.40-win32.zip</div>
<div>mysql-connector-java-5.1.10.zip</div>
<div>&nbsp;</div>
<div><a class="channel_keylink" href="http://download.chinaitlab.com/" target="_blank">下载</a>地址：</div>
<div><u>http://apache.freelamp.com/commons/dbutils/binaries/commons-dbutils-1.2-bin.zip</u></div>
<div><u>http://gd.tuwien.ac.at/db/mysql/Downloads/MySQL-5.1/mysql-noinstall-5.1.40-win32.zip</u></div>
<div><u><a href="http://gd.tuwien.ac.at/db/mysql/Downloads/Connector-J/mysql-connector-java-5.1.10.zip">http://gd.tuwien.ac.at/db/mysql/Downloads/Connector-J/mysql-connector-java-5.1.10.zip</a></u></div>
<img src ="http://www.blogjava.net/jvict/aggbug/318674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2010-04-18 17:30 <a href="http://www.blogjava.net/jvict/articles/318674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>