2.2.2 Change OracleReturning to use oracle.jdbc.oraclePreparedStatement for compatibility with ojdbc6.jar compatibility 2.2.1 Fix a result set leak in the case of a Mapper raising an exception rather than returning cleanly 2.2.0 Add DBI#inTransaction 2.1.1 Add timing info to logging calls 2.1.0 Add Query#fold Add additional logging around handles and transactions 2.0.2 Clean up a NullPointerException which was masking an UnableToCreateStatementException 2.0.1 Add '!' to the characters for LITERAL in the colon prefix grammar 2.0.0 Add Query#list(int) in order to allow for a maximum resukt size from eager query execution. Add sql logging facility 1.4.6 Fix an NPE when dealing with metadata in Args. 2.0pre17 Change statement customizer to have before and after callbacks Change OracleReturning to use the after callback to extract results 2.0pre16 Clean up the build so the stringtemplate stuff is useful SQLStatement#bind(*, Character) which converts to a string Provide a non-caching default statement builder Allow setting the statement builder on a DBI explicitely Allow re-use of a prepared batch by clearing the parts prior to execution Change query iterated results to clean resources in the same manner as list, just later 2.0pre15 Move StringTemplate stuff back into unstable Support for checkpointed transactions 2.0pre14 Add convenience classes for one value result sets StringTemplate 3.0 based statement locator and a classpath based loader Improve grammar for named param parsing (| in LITERAL) 2.0pre13 Spring (2.0) support classes Add ability to define statement attributes at the DBI and Handle levels Have prepared batch use the statement locator Bean resultset mapper invokes the right ResultSet.getXXX() for each property type (getObject() on Oracle returns internal Oracle types) Allow positional binding for PreparedBatch Renamed PreparedBatchPart.another() to next() Change SQLStatement#first to return null on an empty result instead of an NPE Allow setting attributes on statement contexts for batches and prepared batches SQLStatement.bindNull(...) 2.0pre12 [bugfix] Pass statement context into result mapped queries 2.0pre11 Create the StatementContext to allow for tunneling state into the various client defined tweakables 2.0pre10 allow numbers in named params 2.0pre9 Fix up IDBI to have the DBI functional methods and not the config methods 2.0pre8 Add double quote handling to named param magic 2.0pre7 Added Oracle DML Returning features 2.0pre6 Pluggable statement builders More literal characters in the named statement parser 2.0pre5 Improve grammar for named param parsing (_ @ and _ in LITERAL) 2.0pre4 Switch to an ANTLR based grammar for named param parsing 2.0pre3 JDBC4 Style "Ease of Development" and API Docs 2.0pre2 Flesh out convenience APIS 2.0pre1 Complete Rewrite 1.4.5 Fix bug in caching added in 1.4.4 Optimize statement literal or named statement detection 1.4.4 Allow for create/drop/alter statements Cache whether or not a driver supports asking for prepared statement parameter types 1.4.3 Handle drivers (such as Oracle) which throw an exception when trying to retrieve prepared statement parameter type information. 1.4.2 Be explicit about target jdk version (1.4) for this branch 1.4.1 Fixed bug where null is being set via setObject instead of setNull Thank you, Simone Gianni! 1.4.0 Expose the new functionality on interfaces as well as concrete classes 1.3.3 Expose the handle decorator functionality on the IDBI interface Add a script locator mechanism analogous to the statement locator 1.3.2 Save SQLException to provide more information to the DBIException on statement execution 1.3.1 Issue with a matcher not being reset which only showed up under jdk 1.5. Thank you Patrick! 1.3.0 Wrap exceptions thrown from handle in Spring DataAccessExceptions for the Spring adaptor. Thank you Thomas Risberg. Support for "global" named parameters at the handle and DBI levels 1.2.5 Change Handle#script to batch the statements in the script 1.2.4 Bug fix in named parameter handling with quotes (would ignore some named params incorrectly) 1.2.3 Allow configuring transaction handlers in properties Allow configuring of externalized sql locating (ie, non-classpath) 1.2.2 Add callback based transaction handling in order to cleanly support the various transactional contexts (CMT, BMT, Spring, Local) etc. 1.2.1 Via the Spring DBIBean, IDBI#open(HandleCallback) now uses the transactionally bound handle if there is one. 1.2.0 DBIException now extends RuntimeException. The 7 character change major release =) Added DBIUtils.closeHandleIfNecessary(Handle, IDBI) to allow for transparently managing transactions and connections in Spring whteher tx's are enabled or not. 1.1.2 Handle#query(String, RowCallback): void no longer starts a transaction automagically 1.1.1 Support full-line comments in external sql and sql scripts. Full line comments must begin with # or // or -- as the first character(s) on the line. 1.1.0 Added handle#first(..): Map convenience functions to query for individual rows Removed DBITransactionFailedException and used plain old DBIException in its place Added unstable package for holding elements subject to API changes during a major release cycle. Handle decorator functionality added to unstable feature set JavaBean mapped named parameter support Renamed Handle#preparedBatch to Handle#prepareBatch Queries return java.util.List instead of java.util.Collection Much more sophisticated auto-configuration Broke backwards compatibility on handle.query(String, Object) method behavior (this is reason why 1.1.0 version increment) (read the javadocs if you use this method) Removed method Handle#query(String, Object, Object) Could lea to confusion with changed behavior mentioned above 1.0.10 Batch and PreparedBatch Support Removed an unused exception Fixed bug in named parameter extractor (would miss named params not preceeded by whitespace) 1.0.9 Better auto-detection of statement type (named, raw sql, etc) 1.0.8 Spring integration tools 1.0.7 Provide an interface for the DBI class in order to play nicer with proxies 1.0.6 Prepared statement re-use was failing on Oracle, fixed. 1.0.5 Fleshed out the execute(..) methods to take full array of arguments, like query. Added update(..): int which return number of rows affected Lots of internal refactoring 1.0.4 Was swallowing an exception in one place for the (brief) 1.0.3 release. Definately upgrade if using 1.0.3 1.0.3 Fixed a bug where quoted text could be interpreted as named tokens, bad me. Added HandleCallback methods to DBI to manage handle db resources etc for clients. Removed test dependency on Jakarta commons-io, which had been used, previously, for deleting the test database. Tests now depend only on derby and junit, still with no runtime dependencies (other than the JDBC driver for your database). 1.0.2 Added facility for loading connection info from properties file for convenience. Totally optional, thankfully. 1.0.1 Added overloaded argument signatures to callback-based queries 1.0 Initial Release