-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE_NOTES
498 lines (356 loc) · 15.4 KB
/
RELEASE_NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
2.74
- cglib 3.2.2, asm 5.1; fixes codegen for new Java 8 bridge methods
- @UseStringTemplate3StatementLocator now caches created locators
2.73
- Allow clearing of bindings in SQLStatement
- (finally!) parse Postgres CAST syntax 'value::type' properly in colon
prefix statements
- fix @SqlBatch hanging if you forget to include an Iterable-like param
- fix @SqlUpdate @GetGeneratedKeys to allow non-number return types
- Expose Foreman on StatementContext
2.72
- Support for the ability to provide a list of the column names returned
in a prepared batch #254
2.71
- fix @BindBean of private subtypes, #242
2.70 *** MAJOR CHANGES ***
- allow JDK8 default methods in SQLObject interfaces. Backport of #190.
- switch to standard Maven toolchains.xml for cross-compilation, #169.
See https://maven.apache.org/guides/mini/guide-using-toolchains.html
for instructions on how to use it.
- Correctly handle semicolons and inline comments in SQL statements.
Existing SQL statements may break due to lexer changes, ensure you have
test coverage.
- Introduce "column mappers" which dramatically improve type handling
for BeanMapper-style automatic mapping
see https://github.com/jdbi/jdbi/pull/164
- Disallow "nested" transactions explicitly. They almost certainly don't
work the way you expect. Use savepoints instead.
- Eagerly check return type of @SqlUpdate annotated SqlObject methods
- Allow getting generated keys by name for Oracle
- Allow getting generated keys from prepared Batch statements
- Cache StatementRewriter parsing of statements
- Support mapping of URI, char, Character types
2.63
- Include lambda-friendly callback methods on Handle and DBI, #156
2.62
- Also include asm in shade, fixes build. Sorry about the broken releases...
2.61 *** DO NOT USE ***
- Fix shading broken in 2.60, fixes #152
2.60 *** DO NOT USE ***
- Fix Javadoc generation for JDK6 and JDK8
- Add support for /* */ style comments in statements
- Add @BindMap annotation which allows parameters passed in a Map<String, Object>
- Add support for running Script objects as individual statements rather than batch
- Add support for default bind name based on argument position number (thanks @arteam)
- Fix SqlObject connection leak through result iterator (thanks @pierre)
- Switch to using cglib instead of cglib-nodep so we can pull ASM 5.0.2 which is Java 8 compatible
- Classmate to 1.1.0
2.59
- Fixes #137, broken ClasspathStatementLocator cache (thanks @HiJon89).
- Recognize MySQL REPLACE statements
2.58
- Identical to 2.57 except that the jar is correctly shaded.
2.57 *** DO NOT USE *** - Packaging for 2.57 was accidentially broken, use 2.58 instead.
Thanks to @HiJon89 for spotting the problem!
- use Types.NULL for null objects (thanks @christophercurrie)
- improve behavior on transactional autocommit (thanks @hawkan)
- fix connection leak in on-demand sqlobject (thanks @pmaury)
- code cleanups
2.54
- fix cleanup bug when e.g. cleanupHandle was called multiple times
on the same query.
- Generic object binding uses specific type if value is non-null.
2.53
- Tests now run in parallel
- Added Template supergroup loading to StringTemplate3StatementLocator
- add a global cache for templates loaded from an annotation.
- fix a handler cache bug.
2.52
- not released
2.51
- fix PMD, Findbugs and javadoc complaints
- clean license headers in all source files
- use basepom.org standard-oss base pom to build,
build with all checkers enabled
- build with antlr 3.4
- use classmate 0.9.0 (from 0.8.0)
- make all dependencies that are not required optional (not provided)
2.50
- add travis setup for autobuilds
- Remove log4j dependency for slf4j logger
- Ensure that compilation using JDK7 or better uses a JDK6 rt.jar
- Fix the @BindBean / Foreman.waffle code to use correct ArgumentFactories
and not just the ObjectArgumentFactory
- fix spurious test failures when using newer versions of the surefire plugin
2.45
- Support for setting Enum values from strings in BeanMapper
2.44
- Add java.io.Closeable to Handle and ResultIterator
2.35
- Use CGLIB for sql objects instead of dyanmic proxies
- Support for classes as well as interfaces in the sql object api
- Add @Transaction for non @Sql* methods in sql objects
- @CreateSqlObject annotation sql objects to replace Transmogrifier
2.31
- Add access to ResultSet on FoldController
2.12
- Registered Mappers on DBi and Handle, and the Query#mapTo addition
- Sql Object API
2.11
- Botched release attempt with Maven 3
2.10.2
- Bugfix: Allow escaping of arbitrary characters in the SQL source, especially allow
escaping of ':' (which is needed for postgres type casts)
2.10.0
- minor code cleanups to reduce number of warnings
- Expose NamedArgumentFinder to allow custom lookup of Arguments. JDBI already provides
two implementations of the Interface, one for Maps and one for BeanProperties.
- Add ability to set query timeout (in seconds) on SQLStatement
2.9.3
- Add <url /> element to pom so can get into central :-)
2.9.2
- Add ` as a legal SQL character in colon prefix grammar
- non-existent release, fighting maven
2.9.1
- First 2.9 series release
2.9.0
- Make the DefaultMapper public.
- Aborted, trying to make gpg signing work correctly
2.8.0
- Add methods to SQLStatement and PreparedBatch that allow adding a set of defines
to the context in one go.
- Add ~ { and } as legal characters in the colon prefix grammar
2.7.0
- A TimingCollector was added which can be registered on the DBI or handle which then
gets called with nanosecond resolution elapsed time every time a statement is run
against the data base.
- re-added some Exception constructors that were accidentially removed in 2.3.0 making
2.4.0-2.6.x non-backwards compatible.
- Bind java.util.Date as a timestamp because it contains time and date.
- BasicHandle constructor is now package private (which it always should have been)
- add Clirr Report to the Maven Site
- convert all calls to System.currentTimeMillis() to System.nanoTime(), which is more
accurate and much more lightweight. As we only calculate time differences, it is
good enough.
- fix more compiler warnings
- add null checks for all object types on SQLStatement
- move object null checks, that don't require boxing/unboxing
into the Argument classes. Keep the checks for object/primitive
types in SQL to avoid boxing/unboxing overhead.
2.6.0
Fix a number of compiler warnings
Add new binding methods for SQLStatement
- Integer, Boolean, Byte, Long, Short Object
- double, float, short primitive
All bind methods taking an object should check
for null values and bind a NullArgument accordingly.
2.5.0
Add new binding methods for SQLStatement
- char types
- boolean as int (for DBs missing a boolean type)
Re-add unit test removed in 2.4.9 with unicode escapes
2.4.9
Remove Unit tests that fails depending on Platform Encoding
2.4.8
Switch to ANTLR 3 for grammars so that shading works again
2.4.5
Move source code to github
2.4.4
Fix several dependency and shading issues which came up from the
ant to conversion.
2.4.3
Add better messages on statement exceptions
2.4.2
Switch to maven2 for builds
Add the statement context to statement related exceptions, including a new
DBIExcpetion abstact subclass, StatementException, which exposes this.
2.3.0
Fix OracleReturning compile time dependency using Reflection.
Deprecated OracleReturning.
Added CallableStatement support :
- new method handle.prepareCall
- new Call class and CallableStatementMapper interface
Fixes to colon prefix grammar to support empty string literals and
escaped quotes.
Added access to more of the actual context for a statement to StatementContext
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