A response to Lucas Eder's "JDBC improvements and convenience method suggestions" post.
Before tackling each point individually, the theme of them all is 'make JDBC easier for end users', and I'm not so sure this is worthwhile, both design-wise and pragmatically.
JDBC is what it is. It contains a bunch of dubious design choices that cannot be revisited without breaking backwards compatibility for callers (JDBC as an interface has given itself a free pass to break compat for implementers).
The problem with shipping really nice APIs for moving targets in the core, is that the core is generally not the place to start adding dueling implementations, is not the place for code that may want to (lightly) break backwards compatibility, and it is not the place for implementations that trade expressive power away in favour of being nicer. Core libraries have to expose everything as much as possible, even things that almost nobody needs.