post icon

Setear parametros con valores nulos en Java

Muchas veces en nuestra base de datos tenemos procedimientos almacenad0s que reciben parámetros, y alguno de éstos debe ser enviado como nulo (Null/NullDB). En java ya sea que estemos utilizando un CallableStatement o PrepareStatement podemos enviar de un modo bastante elegante.

Tradicionalemente enviamos de este modo los parametros:

PreparedStatement ps = conn.prepareStatement("{ call NuestroSP (?, ?) }");
ps.setInt(1, 3);
ps.setString(1, "devtroce");

Ahora si deseamos enviar el primer parámetro con valor nulo, podemos hacer del siguiente modo, basándonos es el código anterior:

PreparedStatement ps = conn.prepareStatement("{ call NuestroSP (?, ?) }");
ps.setNull(1, java.sql.Types.INTEGER);
ps.setString(1, "devtroce");

Les dejo la tabla de los equivalentes de java.sql.Types con los tipos de datos de las bases de datos..

java.sql.Types SQL Types
BIGINT BIGINT
BINARY CHAR FOR BIT DATA
BIT CHAR FOR BIT DATA
BLOB BLOB (JDBC 2.0 and up)
CHAR CHAR
CLOB CLOB (JDBC 2.0 and up)
DATE DATE
DECIMAL DECIMAL
DOUBLE DOUBLE PRECISION
FLOAT DOUBLE PRECISION
INTEGER INTEGER
LONGVARBINARY LONG VARCHAR FOR BIT DATA
LONGVARCHAR LONG VARCHAR
NULL Not a data type; always a value of a particular type
NUMERIC DECIMAL
REAL REAL
SMALLINT SMALLINT
SQLXML XML
TIME TIME
TIMESTAMP TIMESTAMP
VARBINARY VARCHAR FOR BIT DATA
VARCHAR VARCHAR

Comentarios desde Facebook:

  1. avatar
    sadalsuud Google Chrome Ubuntu Linux
    9 febrero 2013 at 13:56 #

    muuuchas gracias tenía esta duda y pues ha quedado claro, buen detalle la tabla comparativa, voy a guardar está página en favoritos.

    😀

Responder