blob: 46abd83ce72079ee340fa5c921dd46ae3255070d [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.
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="2.0" date="2020-MM-DD" description="New features and bug fixes.">
<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="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="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 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="fix" issue="DBUTILS-138" due-to="Stefano Lissa, Gary Gregory">
org.apache.commons.dbutils.QueryRunner.query(Connection, boolean, String, ResultSetHandler&lt;T>, Object...) Exception in closing statement leave connections open.
</action>
<action dev="ggregory" type="fix" issue="DBUTILS-139" due-to="Gary Gregory">
Update Java requirement from version 6 to 7.
</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" type="update" due-to="Dependabot">
Update actions/checkout from v1 to v2.3.4, #44, #23, #48.
</action>
<action dev="ggregory" type="update" due-to="Dependabot">
Update commons-parent from 50 to 51 #14.
</action>
<action dev="ggregory" type="update" due-to="Dependabot">
Update junit from 4.12 to 4.13.1 #16, #42.
</action>
<action dev="ggregory" type="update" due-to="Dependabot">
Update mockito-core from 3.2.4 to 3.4.6 #18, #21.
</action>
<action dev="ggregory" type="update" due-to="Dependabot">
Update spotbugs-maven-plugin from 3.1.12.2 to 4.1.4, #17, #45.
</action>
<action dev="ggregory" type="update" due-to="Gary Gregory">
Update maven-checkstyle-plugin from 3.1.0 to 3.1.1.
</action>
<action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">
Update checkstyle from 8.28 to 8.35, #20.
</action>
<action dev="ggregory" type="update" due-to="Dependabot">
Bump actions/setup-java from v1.4.0 to v1.4.3 #40.
</action>
<action dev="ggregory" type="update" due-to="Dependabot">
Bump checkstyle from 8.35 to 8.37 #47.
</action>
<action dev="ggregory" type="update" due-to="Dependabot">
Bump mockito-core from 3.4.6 to 3.6.0 #46.
</action>
</release>
<release version="1.7" date="2017-07-20" description="Bug fixes and separate column &amp; 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 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>