Release Notes

Release History

VersionDateDescription
1.42011-10-23Bugfixes and addition of asynchronous QueryLoader
1.32009-11-04Adds Java5 generics and varargs
1.22009-03-06Another round of fixes; deprecates methods in preparation for varargs in java5
1.12006-12-01Last couple of years of fixes
1.02003-11-10First release of DbUtils

Release 1.4 - 2011-10-23

TypeChangesBy

fix

DbUtils.loadDriver() uses Class.forName() Fixes DBUTILS-81.

fix

DbUtils.loadDriver catches Throwable Fixes DBUTILS-80.

fix

Duplicate code introduced during Java 1.5 branch merge Fixes DBUTILS-65.

fix

fillStatement doesn't complain when there are too few parameters Fixes DBUTILS-79.

update

efficient usage from findbugs Fixes DBUTILS-75.

add

Add asynchronous batch, query, and update calls Fixes DBUTILS-78.

Release 1.3 - 2009-11-04

TypeChangesBy

add

Java 1.5 generics and varargs Fixes DBUTILS-48.dfabulich

update

BeanProcessor#mapColumnsToProperties now prefers to use column labels over column names (where aliases are not set, these should be identical) Fixes DBUTILS-57.dfabulich

update

Setting pmdKnownBroken in QueryRunner constructor now completely ignores ParameterMetaData Fixes DBUTILS-58.dfabulich

fix

Fixed error message in QueryRunner#rethrow Fixes DBUTILS-60.dfabulich

Release 1.2 - 2009-03-06

TypeChangesBy

update

Removed setDataSource method to guarantee thread safety Fixes DBUTILS-52.dfabulich

update

Made numerous private instance members final to guarantee thread safety; changed protected member of KeyedHandler to final Fixes DBUTILS-51.sebb

remove

Remove old Maven1/Ant build scriptsbayard

update

Support bean property to SQL IN parameter mapping Fixes DBUTILS-29.dfabulich

fix

fillStatement setNull bug with the Postgres/Derby JDBC driver (and others) Fixes DBUTILS-31.dfabulich

update

Make GenericListHandler (now AbstractListHandler) public Fixes DBUTILS-33.dfabulich

update

BasicRowProcessor loses any information on database field case Fixes DBUTILS-34.dfabulich

update

BeanListHandler#handle(ResultSet) is not optimal Fixes DBUTILS-37.dfabulich

fix

NullPointerException occured at rethrow method Fixes DBUTILS-40.dfabulich

update

Object with Long or Decimal got initial zero value while database field is null Fixes DBUTILS-42.dfabulich

update

example documentation page, update query Fixes DBUTILS-38.dennisl

fix

Add serialVersionUID to BasicRowProcessor.CaseInsensitiveHashMap Fixes DBUTILS-36.bayard

Release 1.1 - 2006-12-01

TypeChangesBy

fix

Tests fail to build under 1.6, and warning while compiling source Fixes DBUTILS-32.bayard

fix

BeanListHandler and BeanHandler fail to support java.sql.Date() Fixes DBUTILS-1.bayard

update

ResultSetRowProcessor abstract handler and some classes rework Fixes DBUTILS-16.bayard

fix

Setting bean properties fails silently Fixes DBUTILS-3.bayard

fix

MockResultSet needs to handle equals and hashCode Fixes DBUTILS-9.dgraham

fix

MockResultSet: Throw UnsupportedOperationException for not implemented methods Fixes DBUTILS-7.bayard

add

Implement Pluggable Adaptors to Make BeanHandler Smarter Fixes DBUTILS-20.dgraham

update

Patch for extending BasicRowProcessor Fixes DBUTILS-15.dgraham

add

Protected QueryRunner.close() methods Fixes DBUTILS-12.dgraham

update

Updated docs for example.html page (select AS) Fixes DBUTILS-23.dgraham

add

Added protected ResultSetIterator.rethrow() method to wrap SQLExceptions in RuntimeExceptions. Fixes DBUTILS-4.dgraham

update

Added SQLState and error code to rethrown SQLExceptions. Fixes DBUTILS-5.dgraham

add

Added KeyedHandler to create a Map of Maps from a ResultSet. Fixes DBUTILS-25.dgraham

update

Use current class' ClassLoader instead of QueryLoader's ClassLoader in loadQueries(). Fixes DBUTILS-2.dgraham

update

Made QueryLoader.loadQueries() protected so subclasses can use query repositories other than properties files. Fixes DBUTILS-22.dgraham

update

QueryRunner now calls getDataSource() internally any time it needs access to its DataSource object to allow subclasses to provide different behavior.dgraham

add

Added DbUtils.rollbackAndClose() and DbUtils.rollbackAndCloseQuietly().dgraham

update

Call ResultSet.getTimestamp() in BeanProcessor.processColumn() if the bean property is a java.sql.Timestamp. Oracle's getObject() implementation returns its own incompatible Timestamp class. Fixes DBUTILS-26.dgraham

update

Changed QueryRunner.fillStatement() null handling to use Types.VARCHAR instead of Types.OTHER. This works for the following tested drivers: Firebird 1.5/firebirdsql 1.5RC3, Oracle 9/ Thin driver, MySQL 4.0/Msql Connecttor 3.0 and mm.mysql 2.0.4 MaxDB 7.5, HSQLDB 1.7.1, and MS Access/ODBC Bridge. Fixes DBUTILS-18.dgraham

add

Added a protected QueryRunner.prepareConnection() method to allow subclasses to customize the Connections retrieved from the DataSource before they're used. Fixes DBUTILS-21.dgraham

add

Refactored bean handling from BasicRowProcessor into new BeanProcessor class. This also fixes the common problem with Oracle NUMERIC fields not being set into bean properties.dgraham

add

Added QueryRunner.batch() methods for batch updates. Fixes DBUTILS-13.dgraham

add

Added new ResultSetHandler implementation, ColumnListHandler, that converts one ResultSet column into a List of Objects. Fixes DBUTILS-11.dgraham

Release 1.0 - 2003-11-10

TypeChangesBy

add

This is the first release of the Commons DbUtils package. DbUtils is a small set of classes designed to make working with JDBC easier.

add

QueryRunner class with ResultSetHandler interface allow you to easily query or update a database and handle the ResultSet. Several useful implementations of the ResultSetHandler interface are located in the org.apache.commons.dbutils.handlers.* package.

add

ResultSet wrappers that decorate ResultSets with specialized behavior. See the classes in the org.apache.commons.dbutils.wrappers.* package for details.

add

Dynamic JDBC API interface implementations via the standard java.lang.reflect.Proxy class. This allows you to implement JDBC interfaces such as ResultSet at runtime to avoid API version incompatibilities. See org.apache.commons.dbutils.ProxyFactory for details.