VARCHAR and NVARCHAR can now be used together with the same Connection. Before it was necessary to choose only one of the data types on creation of a Connection (JDBC URL parameter).
Before it was necessary to implement the interface manually if you wanted to create one of these data types. The new instances can be filled with data and then used with the corresponding set method of PreparedStatement.
With the methods unwrap() and isWrapperFor() you can access the native Connection, Statement, ResultSet, and other objects, if the Connections were created from a ConnectionPool.
For every error category there now exists a corresponding SQLException class. This makes it easer to implement specific error handling, for example with a list of vendor codes or a list of SQLStates. You can write a seprate catch branch for the different error categories.
For more information, see: