JDBC 4.0 en early draft

Non JDBC n’est pas mort, et certains se risquent même à penser qu’il a son mot à dire dans la bataille qui fait rage au sujet de la problématique de mapping O/R.

L’API 4.0 est donc depuis peu en early draft et s’annonce pour le moins prometteuse avec l’utilisation des annotations introduite par Tiger.
Au programme, on retrouve notamment les points suivants (ceux qui suivent l’actualité de Mustang ne devraient pas être dépaysés) :

  • le chargement automatiques de drivers (plus besoin de faire appel à Class.forName)
  • l’utilisation massive des annotations (exemples simples et explicites pour l’interface Query : readOnly, scrollable)
  • la prise en charge des rowid
  • l’apparition des types nchar, nvarchar, longnvarchar et nclob
  • des améliorations dans la prise en charge des BLOB, CLOB et NCLOB
  • l’accès à des données xml stockées en base (java.sql.SQLXML) (encore en chantier)
  • l’ajout d’exceptions pour une meilleure prise en charge des SQLState
  • l’amélioration du traitement des SQLException
  • QueryObjectGenerator qui permet via les annotations de définir un mapping et de charger des données dans DataSet

Faisons un petit zoom sur le traitement d’exceptions grâce à l’évolution de la boucle for (plus besoin de faire appel à getNextException() pour un simple parcours des exceptions levées):

catch(SQLException ex) {
  for(Throwable e : ex) {
      System.out.println("Erreur : " + e);
  }
}

Un autre petit zoom sur les nouvelles hiérarchies d’exceptions introduites :

  • la hiérarchie des NonTransientSQLException (ex. : SQLIntegrityConstraintViolationException) correspondant à une exception qui se reproduira systématiquement si vous réexécutez la portion de code sans régler le problème lié à l’exception levée
  • la hiérarchie des TransientSQLException (ex. : SQLTimeoutException) correspondant à une exception qui peut ne pas se reproduire en réexecutant la portion de code

Télécharger les spécifications
Présentation de Tiger par Lionel Roux
La FAQ JDBC

Laisser un commentaire