The JDBC Boolean Compatibility List

Interestingly, boolean types have been introduced only late in the SQL standard, namely in SQL:1999. Even today, not all databases natively support BOOLEAN or BIT types. Most importantly, we can still wait for them in Oracle for a while. Here's "Ask Tom"'s point of view from 2002 on the subject: https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:6263249199595 Oracle. Why U No … Continue reading The JDBC Boolean Compatibility List

Java 8 Friday Goodies: Lambdas and SQL

At Data Geekery, we love Java. And as we're really into jOOQ's fluent API and query DSL, we're absolutely thrilled about what Java 8 will bring to our ecosystem. We have blogged a couple of times about some nice Java 8 goodies, and now we feel it's time to start a new blog series, the... … Continue reading Java 8 Friday Goodies: Lambdas and SQL

JDBC 4.0’s Lesser-known Clob.free() and Blob.free() Methods

When I talk about jOOQ at conferences, I always show this slide containing a bunch of very common JDBC mistakes that people often commit: Can you find the bugs? Some of them are obvious, such as: Line 4: Syntax errors resulting from bad concatenation on line 3 Line 7: Syntax errors and SQL injection risk … Continue reading JDBC 4.0’s Lesser-known Clob.free() and Blob.free() Methods

jOOQ Newsletter: January 22, 2014

Subscribe to the newsletter here Tweet of the Day We are contributing this new section of the newsletter to our followers, users, and customers. Here are: Jose M. Arranz who has had plans to build jOOQ, when he happily discovered that jOOQ already exists https://twitter.com/jmarranz/status/417956223468982272 Majid Azimi who wishes for jOOQ to become the new de facto standard in all … Continue reading jOOQ Newsletter: January 22, 2014

What you Didn’t Know About JDBC Batch

In our previous blog post "10 Common Mistakes Java Developers Make When Writing SQL", we have made a point about batching being important when inserting large data sets. In most databases and with most JDBC drivers, you can get a significant performance improvement when running a single prepared statement in batch mode as such: PreparedStatement … Continue reading What you Didn’t Know About JDBC Batch

Detect JDBC API Misusage with JDBCLint

I've recently seen an advertisement for JDBCLint on the H2 User Group. JDBCLint is an Apache licensed JDBC proxy implementation that does some plausibility checks on the lifecycles of your JDBC objects. For instance, it Checks if a ResultSet is closed twice Checks if a ResultSet is not closed at all (in the finalizer) Checks … Continue reading Detect JDBC API Misusage with JDBCLint

Apache Derby About to Adopt the Awesome SQL:2003 MERGE Statement

Apache Derby is one out of three popular Java embeddable databases (apart from H2 and HSQLDB). It is very SQL and JDBC standards-compliant, but maybe a bit behind on developments of more advanced SQL features. Around 6 years after its first submission, there has now been some action on the Apache Derby DERBY-3155 ticket, recently. Rick Hillegas has attached a first, … Continue reading Apache Derby About to Adopt the Awesome SQL:2003 MERGE Statement

The Lame Side of Java’s Backwards-Compatibility

Java is a very backwards-compatible language. Very as in very very very. It is so backwards compatible, we still have tons of deprecated code that was deprecated in the JDK 1.1. For example, most of the java.util.Date and java.util.Calendar API. Some may argue that it would've been easier to deprecate the classes altogether... But things … Continue reading The Lame Side of Java’s Backwards-Compatibility

Easy Mocking of Your Database

Test-driven development is something wonderful! Once you've established it in your organisation, you will start to: Greatly improve your quality (things break less often) Greatly improve your processes (things can be changed more easily) Greatly improve your developer atmosphere (things are more fun to do) The importance of doing the right test-driven development is to … Continue reading Easy Mocking of Your Database

Alvor: Static SQL analysis in Strings passed to JDBC

I have recently discovered this nice Eclipse plugin here: https://code.google.com/p/alvor/ It evaluates String, StringBuilder, StringBuffer, CharSequence and many other types passed to JDBC method for subsequent execution. It doesn't do a bad job at this, even if it is in beta mode. The rate of false positives that I have experienced is around 20% for regular SQL statements, and … Continue reading Alvor: Static SQL analysis in Strings passed to JDBC