blob: af2f8bc27683def5c54fbbf820ecfee221c445f8 [file] [log] [blame]
<?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.
The <action> type attribute can be add,update,fix,remove.
-->
<document>
<properties>
<title>Release Notes</title>
</properties>
<body>
<release version="1.3" date="2009-11-04" description="Adds Java5 generics and varargs">
<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 occured 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>