<?xml version="1.0"?> | |
<!-- | |
Licensed to the Apache Software Foundation (ASF) under one or more | |
contributor license agreements. See the NOTICE file distributed with | |
this work for additional information regarding copyright ownership. | |
The ASF licenses this file to You under the Apache License, Version 2.0 | |
(the "License"); you may not use this file except in compliance with | |
the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
--> | |
<!-- | |
This file is used by the maven-changes-plugin to generate the release notes. | |
Useful ways of finding items to add to this file are: | |
1. Add items when you fix a bug or add a feature (this makes the | |
release process easy :-). | |
2. Do a bugzilla search for tickets closed since the previous release. | |
3. Use the report generated by the maven-changelog-plugin to see all | |
CVS commits. Set the project.properties' maven.changelog.range | |
property to the number of days since the last release. | |
To regenerate the RELEASE-NOTES.txt: | |
mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=m.n] | |
The <action> type attribute can be add,update,fix,remove. | |
--> | |
<document xmlns="http://maven.apache.org/changes/1.0.0" | |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/plugins/maven-changes-plugin/xsd/changes-1.0.0.xsd"> | |
<properties> | |
<title>Apache Commons DBUtils Release Notes</title> | |
</properties> | |
<body> | |
<release version="1.9.0" date="YYYY-MM-DD" description="New features and bug fixes."> | |
<!-- FIX --> | |
<action type="fix" dev="ggregory" due-to="sanjanarampurkottur01, Gary Gregory">Switch on String instead of cascading if-else in MockResultSet #220.</action> | |
<action type="fix" dev="ggregory" due-to="sanjanarampurkottur01, Gary Gregory">Encapsulate test fields #222.</action> | |
<action type="fix" dev="ggregory" due-to="Gary Gregory">Fix BeanProcessor SpotBugs CT: Be wary of letting constructors throw exceptions. (CT_CONSTRUCTOR_THROW).</action> | |
<action type="fix" dev="ggregory" due-to="Gary Gregory">Fix StatementConfiguration SpotBugs CT: Be wary of letting constructors throw exceptions. (CT_CONSTRUCTOR_THROW).</action> | |
<action type="fix" dev="ggregory" due-to="Gary Gregory">ResultSetIterator.next() does not check if it is already at the end of the result set (SpotBugs CheckResultSet).</action> | |
<action type="fix" dev="ggregory" due-to="Gary Gregory">Replace BasicRowProcessor use of Locale.ENGLISH with Locale.ROOT.</action> | |
<action type="fix" dev="ggregory" due-to="Gary Gregory">AbstractQueryRunner.fillStatementWithBean(PreparedStatement, Object, String...) now throws IllegalArgumentException instead of RuntimeException.</action> | |
<action type="fix" dev="ggregory" due-to="strangelookingnerd, Gary Gregory">Migrate tests to JUnit5 #324.</action> | |
<!-- ADD --> | |
<!-- UPDATE --> | |
<action dev="ggregory" type="update" due-to="Gary Gregory">Bump Java from 8 to 11.</action> | |
<action dev="ggregory" type="update" due-to="Gary Gregory">Bump commons-parent from 62 to 78 #256, #277, #295, #301, #305, #308, #314.</action> | |
<action dev="ggregory" type="update" due-to="Gary Gregory">Bump Hamcrest from org.hamcrest:hamcreset-all:1.3 to org.hamcrest:hamcreset:3.0.</action> | |
<action dev="ggregory" type="update" due-to="Gary Gregory">Bump org.mockito:mockito-core from 4.11.0 to 5.14.1.</action> | |
</release> | |
<release version="1.8.1" date="2023-09-09" description="New features and bug fixes."> | |
<!-- FIX --> | |
<action type="fix" dev="ggregory" issue="DBUTILS-151" due-to="mark, Gary Gregory"> | |
Module org.apache.commons.dbutils does not declare `uses`. | |
</action> | |
<!-- ADD --> | |
<!-- UPDATE --> | |
<action dev="ggregory" type="update" due-to="Gary Gregory"> | |
Bump commons-parent from 61 to 62. | |
</action> | |
</release> | |
<release version="1.8.0" date="2023-08-01" description="New features and bug fixes."> | |
<!-- FIX --> | |
<action dev="thecarlhall" type="fix" issue="DBUTILS-131" due-to="yairlenga"> | |
Speedup query calls without parameters; Use PreparedStatement only when parameters are present. | |
</action> | |
<action dev="thecarlhall" type="fix"> | |
Always copy Date, Time, Timestamp on get and set in SqlNullCheckedResultSet. | |
</action> | |
<action dev="ggregory" type="update" issue="DBUTILS-135" due-to="hdevalke"> | |
BeanProcessor is not thread safe since [DBUTILS-124]. | |
</action> | |
<action dev="ggregory" type="update" issue="DBUTILS-137" due-to="Gary Gregory"> | |
Inefficient allocation of Maps in org.apache.commons.dbutils.BasicRowProcessor.toMap(ResultSet). | |
</action> | |
<action type="fix" dev="ggregory" issue="DBUTILS-138" due-to="Stefano Lissa, Gary Gregory"> | |
org.apache.commons.dbutils.QueryRunner.query(Connection, boolean, String, ResultSetHandler, Object...) Exception in closing statement leave connections open. | |
</action> | |
<action type="fix" dev="ggregory" issue="DBUTILS-139" due-to="Gary Gregory"> | |
Update Java requirement from version 6 to 8. | |
</action> | |
<action due-to="thecarlhall" type="update"> | |
clirr, checkstyle, and spotbugs configured as part of default build. | |
</action> | |
<action dev="ggregory" due-to="Amey Jadiye" type="fix"> | |
Correction of coverage badge #10. | |
</action> | |
<action dev="ggregory" due-to="Gary Gregory" type="fix"> | |
Manage JDBC objects using try-with-resources. | |
</action> | |
<action dev="ggregory" due-to="Gary Gregory" type="fix"> | |
ResultSet not closed in QueryRunner.insert(Connection, String, ResultSetHandler, Object...). | |
</action> | |
<action dev="ggregory" due-to="Gary Gregory" type="fix"> | |
ResultSet not closed in QueryRunner.insertBatch(Connection, String, ResultSetHandler, Object[][]). | |
</action> | |
<action dev="ggregory" due-to="Gary Gregory" type="fix"> | |
AbstractQueryRunner.fillStatementWithBean(PreparedStatement, Object, String...) now throws IllegalStateException instead of RuntimeException. | |
</action> | |
<!-- ADD --> | |
<action dev="thecarlhall" type="add" issue="PR/9" due-to="rewerma"> | |
Add @Column annotation to hint the field name instead of dissecting the get method name. | |
</action> | |
<action dev="ggregory" type="add" issue="DBUTILS-136" due-to="Matthew Hall, Gary Gregory"> | |
CaseInsensitiveHashMap cannot be accessed by subclasses of BasicRowProcessor; add org.apache.commons.dbutils.BasicRowProcessor.createCaseInsensitiveHashMap(int). | |
</action> | |
<action dev="ggregory" type="add"> | |
Add github/codeql-action #115. | |
</action> | |
<action type="fix" dev="ggregory" due-to="step-security-bot, Gary Gregory"> | |
[StepSecurity] ci: Harden GitHub Actions #191. | |
</action> | |
<action dev="ggregory" type="add" due-to="Gary Gregory"> | |
Add StatementConfiguration.StatementConfiguration(Integer, Integer, Integer, Integer, Duration). | |
</action> | |
<action dev="ggregory" type="add" due-to="Gary Gregory"> | |
Add StatementConfiguration.getQueryTimeoutDuration(). | |
</action> | |
<action dev="ggregory" type="add" due-to="Gary Gregory"> | |
Add StatementConfiguration.Builder.queryTimeout(Duration). | |
</action> | |
<!-- UPDATE --> | |
<action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory"> | |
Bump actions/cache from 2 to 3.0.11 #109, #141, #145. | |
</action> | |
<action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory"> | |
Bump actions/checkout from 1 to 3.1.10, #44, #23, #48, #75, #93, #143. | |
</action> | |
<action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory"> | |
Bump actions/setup-java from 1.4.0 to 3.5.1 #40. | |
</action> | |
<action dev="ggregory" type="update" due-to="Gary Gregory"> | |
Bump actions/upload-artifact from 3.1.0 to 3.1.1 #150. | |
</action> | |
<action dev="ggregory" type="update" due-to="Dependabot"> | |
Bump commons-parent from 50 to 61 #14, #113, #139, #168, #189. | |
</action> | |
<action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory"> | |
Bump junit from 4.12 to 5.9.1 vintage #16, #42, #58. | |
</action> | |
<action dev="ggregory" type="update" due-to="Dependabot"> | |
Bump mockito-core from 3.2.4 to 4.8.1 #18, #21, #46, #53, #97, #103, #111, #116, #122, #131. #137, #151. | |
</action> | |
<action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory"> | |
Bump spotbugs-maven-plugin from 3.1.12.2 to 4.4.2, #17, #45, #52. | |
</action> | |
<action dev="ggregory" type="update" due-to="Gary Gregory"> | |
Bump spotbugs from 3.1.12.2 to 4.2.3. | |
</action> | |
<action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot"> | |
Bump maven-checkstyle-plugin from 3.1.0 to 3.2.0 #56, #132. | |
</action> | |
<action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot"> | |
Bump checkstyle from 8.28 to 9.3 #20, #47. | |
</action> | |
<action dev="ggregory" type="update" due-to="Gary Gregory"> | |
Bump commons.japicmp.version from 0.14.3 to 0.16.0. | |
</action> | |
</release> | |
<release version="1.7" date="2017-07-20" description="Bug fixes and separate column & property handlers using SPI"> | |
<action dev="sebb" type="update" issue="DBUTILS-117" due-to="Vadim Smirnov"> | |
Error handling possible getParameterMetaData() results | |
- allow for null return | |
- handle SQLFeatureNotSupportedException | |
</action> | |
<action dev="britter" type="update" issue="DBUTILS-119" due-to="Michael Akerman"> | |
Correct errors in BeanMapHandler Javadoc | |
</action> | |
<action dev="thecarlhall" type="add" issue="DBUTILS-121"> | |
Add getWriteMethod to BeanProcessor to allow subclasses to influence which write method is used | |
</action> | |
<action dev="thecarlhall" type="fix" issue="DBUTILS-82" due-to="Kenshi Toriumi"> | |
Change method contracts to allow extended class types when returning a bean populated from a query | |
</action> | |
<action dev="thecarlhall" type="fix" issue="DBUTILS-89" due-to="Adam Dyga"> | |
Add method in BeanProcessor to populate an existing bean | |
</action> | |
<action dev="thecarlhall" type="fix" issue="DBUTILS-70" due-to="Michael Akerman"> | |
Add ability to configure statements used in QueryRunner | |
</action> | |
<action dev="thecarlhall" type="add" issue="DBUTILS-50" due-to="Dan Fabulich"> | |
Support CallableStatement "out" parameters | |
</action> | |
<action dev="thecarlhall" type="add" issue="DBUTILS-124"> | |
Implement column and property handlers using Java's service interfaces. | |
</action> | |
<action dev="thecarlhall" type="update" issue="PR/1" due-to="Michael Hausegger"> | |
Created some Unit Tests to increase code coverage. | |
</action> | |
</release> | |
<release version="1.6" date="2014-07-20" description="Bug fixes and addition of insert methods"> | |
<action dev="britter" type="fix" issue="DBUTILS-110"> | |
ArrayHandler should return an empty array when handle has no rows | |
</action> | |
<action dev="britter" type="fix" issue="DBUTILS-114" due-to="Michael Osipov"> | |
Order of columns not retained in BasicRowProcessor with HashMap | |
</action> | |
<action dev="britter" type="fix" issue="DBUTILS-118" due-to="Feysal Rujbally, Daniele Cremonini"> | |
BeanProcessor not returning nanoseconds | |
</action> | |
<action dev="britter" type="add" issue="DBUTILS-113" due-to="Graylin Kim, Michael Osipov"> | |
Add support for conversion of ResultSet strings to enums in the BeanProcessor | |
</action> | |
<action dev="sebb" type="update" issue="DBUTILS-85"> | |
In BeanProcessor#isCompatibleType, can Integer.class.isInstance(value) be replaced by value instanceof Integer (etc)? | |
Simplified code by using instanceof. | |
</action> | |
<action dev="sebb" due-to="Niall Pemberton" type="fix" issue="DBUTILS-106"> | |
DBUtils can't build using JDK 1.7 - DriverProxy needs to implement getParentLogger() | |
Add dynamic invocation. | |
</action> | |
<action dev="wspeirs" due-to="Micah Huff" type="add" issue="DBUTILS-108"> | |
Create functionality to return auto-generated keys in batches of SQL inserts | |
</action> | |
<action dev="wspeirs" due-to="PB" type="add" issue="DBUTILS-107"> | |
Patch QueryLoader to also load from XML properties files | |
</action> | |
<action dev="wspeirs" due-to="xiaofei.xu" type="fix" issue="DBUTILS-100"> | |
Updated the use of getColumnName to try getColumnLabel first | |
</action> | |
<action dev="simonetripodi" due-to="Moandji Ezana" type="add" issue="DBUTILS-98"> | |
Add missing Javadoc to QueryRunner#insert | |
</action> | |
<action dev="simonetripodi" type="add" issue="DBUTILS-97"> | |
Add an Abstract ResultSetHandler implementation in order to reduce redundant 'resultSet' variable invocation | |
</action> | |
<action dev="simonetripodi" due-to="yuyf" type="fix" issue="DBUTILS-96"> | |
DbUtils#loadDriver(ClassLoader,String) makes DriverManager throwing "No suitable driver found for jdbc" | |
if ClassLoader is not the System's one | |
</action> | |
<action dev="wspeirs" due-to="Moandji Ezana" type="add" issue="DBUTILS-87"> | |
Added insert methods to QueryRunner and AsyncQueryRunner that return the generated key. | |
</action> | |
</release> | |
<release version="1.5" date="2012-07-20" description="Bug fixes and addition of BeanMapHandler"> | |
<action dev="simonetripodi" due-to="Benedikt Ritter" type="update" issue="DBUTILS-94"> | |
Provide test coverage for org.apache.commons.dbutils.DbUtils | |
</action> | |
<action dev="simonetripodi" due-to="Stevo Slavic" type="fix" issue="DBUTILS-93"> | |
Source assembly artifact fails to build a site because of missing pmd-ruleset.xml | |
</action> | |
<action dev="simonetripodi" due-to="Stevo Slavic" type="update" issue="DBUTILS-91"> | |
Enhance BasicRowProcessor to have row mapping easier to configure | |
</action> | |
<action due-to="wspeirs" type="update"> | |
Updated pom.xml: Java 1.6 now required, clirr and compiler plugin removed | |
</action> | |
<action due-to="Tiago Cavaleiro" dev="wspeirs" type="fix" issue="DBUTILS-84"> | |
BeanProcessor method processColumn should take SQLXML in consideration | |
</action> | |
<action dev="wspeirs" type="update" issue="DBUTILS-77"> | |
Updated documentation to better reflect the use of pmdKnownBroken | |
</action> | |
<action due-to="Sebb" type="fix" issue="DBUTILS-73"> | |
Added a fixed Locale (Locale.ENGLISH) to all toLowerCase calls in BasicRowProcessor | |
</action> | |
<action due-to="Michael Osipov" type="add" issue="DBUTILS-67"> | |
Added BeanMapHandler | |
</action> | |
<action due-to="Michael Osipov" type="update" issue="DBUTILS-66"> | |
Added generics to ScalarHandler, ColumnHandler, and KeyedHandler | |
</action> | |
</release> | |
<release version="1.4" date="2011-10-23" description="Bug fixes and addition of asynchronous QueryLoader"> | |
<action type="fix" issue="DBUTILS-81"> | |
DbUtils.loadDriver() uses Class.forName() | |
</action> | |
<action type="fix" issue="DBUTILS-80"> | |
DbUtils.loadDriver catches Throwable | |
</action> | |
<action type="fix" issue="DBUTILS-65"> | |
Duplicate code introduced during Java 1.5 branch merge | |
</action> | |
<action type="fix" issue="DBUTILS-79"> | |
fillStatement doesn't complain when there are too few parameters | |
</action> | |
<action type="update" issue="DBUTILS-75"> | |
efficient usage from findbugs | |
</action> | |
<action dev="wspeirs" type="add" issue="DBUTILS-78"> | |
Add asynchronous batch, query, and update calls | |
</action> | |
</release> | |
<release version="1.3" date="2009-11-04" description="Adds Java5 generics and varargs"> | |
<action dev="dfabulich" type="add" issue="DBUTILS-48"> | |
Java 1.5 generics and varargs | |
</action> | |
<action dev="dfabulich" type="update" issue="DBUTILS-57"> | |
BeanProcessor#mapColumnsToProperties now prefers to use column labels over column names (where aliases are not set, these should be identical) | |
</action> | |
<action dev="dfabulich" type="update" issue="DBUTILS-58"> | |
Setting pmdKnownBroken in QueryRunner constructor now completely ignores ParameterMetaData | |
</action> | |
<action dev="dfabulich" type="fix" issue="DBUTILS-60"> | |
Fixed error message in QueryRunner#rethrow | |
</action> | |
</release> | |
<release version="1.2" date="2009-03-06" description="Another round of fixes; deprecates methods in preparation for varargs in java5"> | |
<action dev="dfabulich" type="update" issue="DBUTILS-52"> | |
Removed setDataSource method to guarantee thread safety | |
</action> | |
<action dev="sebb" type="update" issue="DBUTILS-51"> | |
Made numerous private instance members final to guarantee thread safety; changed protected member of KeyedHandler to final | |
</action> | |
<action dev="bayard" type="remove"> | |
Remove old Maven1/Ant build scripts | |
</action> | |
<action dev="dfabulich" type="update" issue="DBUTILS-29"> | |
Support bean property to SQL IN parameter mapping | |
</action> | |
<action dev="dfabulich" type="fix" issue="DBUTILS-31"> | |
fillStatement setNull bug with the Postgres/Derby JDBC driver (and others) | |
</action> | |
<action dev="dfabulich" type="update" issue="DBUTILS-33"> | |
Make GenericListHandler (now AbstractListHandler) public | |
</action> | |
<action dev="dfabulich" type="update" issue="DBUTILS-34"> | |
BasicRowProcessor loses any information on database field case | |
</action> | |
<action dev="dfabulich" type="update" issue="DBUTILS-37"> | |
BeanListHandler#handle(ResultSet) is not optimal | |
</action> | |
<action dev="dfabulich" type="fix" issue="DBUTILS-40"> | |
NullPointerException occurred at rethrow method | |
</action> | |
<action dev="dfabulich" type="update" issue="DBUTILS-42"> | |
Object with Long or Decimal got initial zero value while database field is null | |
</action> | |
<action dev="dennisl" type="update" issue="DBUTILS-38"> | |
example documentation page, update query | |
</action> | |
<action dev="bayard" type="fix" issue="DBUTILS-36"> | |
Add serialVersionUID to BasicRowProcessor.CaseInsensitiveHashMap | |
</action> | |
</release> | |
<release version="1.1" date="2006-12-01" description="Last couple of years of fixes"> | |
<action dev="bayard" type="fix" issue="DBUTILS-32"> | |
Tests fail to build under 1.6, and warning while compiling source | |
</action> | |
<action dev="bayard" type="fix" issue="DBUTILS-1"> | |
BeanListHandler and BeanHandler fail to support java.sql.Date() | |
</action> | |
<action dev="bayard" type="update" issue="DBUTILS-16"> | |
ResultSetRowProcessor abstract handler and some classes rework | |
</action> | |
<action dev="bayard" type="fix" issue="DBUTILS-3"> | |
Setting bean properties fails silently | |
</action> | |
<action dev="dgraham" type="fix" issue="DBUTILS-9"> | |
MockResultSet needs to handle equals and hashCode | |
</action> | |
<action dev="bayard" type="fix" issue="DBUTILS-7"> | |
MockResultSet: Throw UnsupportedOperationException for not implemented methods | |
</action> | |
<action dev="dgraham" type="add" issue="DBUTILS-20"> | |
Implement Pluggable Adaptors to Make BeanHandler Smarter | |
</action> | |
<action dev="dgraham" type="update" issue="DBUTILS-15"> | |
Patch for extending BasicRowProcessor | |
</action> | |
<action dev="dgraham" type="add" issue="DBUTILS-12"> | |
Protected QueryRunner.close() methods | |
</action> | |
<action dev="dgraham" type="update" issue="DBUTILS-23"> | |
Updated docs for example.html page (select AS) | |
</action> | |
<action dev="dgraham" type="add" issue="DBUTILS-4"> | |
Added protected ResultSetIterator.rethrow() method to wrap SQLExceptions in | |
RuntimeExceptions. | |
</action> | |
<action dev="dgraham" type="update" issue="DBUTILS-5"> | |
Added SQLState and error code to rethrown SQLExceptions. | |
</action> | |
<action dev="dgraham" type="add" issue="DBUTILS-25"> | |
Added KeyedHandler to create a Map of Maps from a ResultSet. | |
</action> | |
<action dev="dgraham" type="update" issue="DBUTILS-2"> | |
Use current class' ClassLoader instead of QueryLoader's ClassLoader | |
in loadQueries(). | |
</action> | |
<action dev="dgraham" type="update" issue="DBUTILS-22"> | |
Made QueryLoader.loadQueries() protected so subclasses can use query | |
repositories other than properties files. | |
</action> | |
<action dev="dgraham" type="update"> | |
QueryRunner now calls getDataSource() internally any time it needs access | |
to its DataSource object to allow subclasses to provide different behavior. | |
</action> | |
<action dev="dgraham" type="add"> | |
Added DbUtils.rollbackAndClose() and DbUtils.rollbackAndCloseQuietly(). | |
</action> | |
<action dev="dgraham" type="update" issue="DBUTILS-26"> | |
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. | |
</action> | |
<action dev="dgraham" type="update" issue="DBUTILS-18"> | |
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. | |
</action> | |
<action dev="dgraham" type="add" issue="DBUTILS-21"> | |
Added a protected QueryRunner.prepareConnection() method to | |
allow subclasses to customize the Connections retrieved from | |
the DataSource before they're used. | |
</action> | |
<action dev="dgraham" type="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. | |
</action> | |
<action dev="dgraham" type="add" issue="DBUTILS-13"> | |
Added QueryRunner.batch() methods for batch updates. | |
</action> | |
<action dev="dgraham" type="add" issue="DBUTILS-11"> | |
Added new ResultSetHandler implementation, ColumnListHandler, that | |
converts one ResultSet column into a List of Objects. | |
</action> | |
</release> | |
<release version="1.0" date="2003-11-10" description="First release of DbUtils"> | |
<action type="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. | |
</action> | |
<action type="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. | |
</action> | |
<action type="add"> | |
ResultSet wrappers that decorate ResultSets with specialized | |
behavior. See the classes in the org.apache.commons.dbutils.wrappers.* | |
package for details. | |
</action> | |
<action type="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. | |
</action> | |
</release> | |
</body> | |
</document> |