Valido también en aplicaciones FundeWeb v1.5


Se han mejorado las funcionalidades de las clases JDBC PreparedStatement y CallableStatement. Los cambios son:

  • PreparedStatement: permite añadir expresiones EL a las consultas para obtener valores. Permite establecer parámetros mediante el nombre.
  • CallableStatement: permite añadir expresiones EL a las consultas para obtener valores. Poder usar parámetros mediante el nombre, ya era una funcionalidad que tenia.
  • Otra mejora que incluye también a al tipo Statement, es que al cerrar la conexión que creo las tres variantes de Statement, se cierran automáticamente los Statments y ResultSet abiertos.


Para poder usar las expresiones EL, no hay que hacer ningún cambio a la hora de utilizar los tipos PreparedStatement y CallableStatement.

PreparedStatement stm = connection.prepareStatement("SELECT * FROM DUAL WHERE #{pruebaJpaIdentityService.one} = 1");



Pero para poder establecer los parámetro mediante el nombre en los PreparedStatement, si hay que hacer una pequeña modificación, usando la interface NamedParameterPreparedStatement. Veamos un ejemplo:

NamedParameterPreparedStatement stm = (NamedParameterPreparedStatement) connection.prepareStatement("SELECT * FROM DUAL WHERE :param = 2");
stm.setInt("param", 2);	


También podemos convertir un PreparedStatement en un NamedParameterPreparedStatement mediante la función:

public static NamedParameterPreparedStatement org.jboss.seam.util.JDBC.getNamedParameterPreparedStatement(PreparedStatement preparedStatement)