2013-01-25 11 views
28

Ho una colonna PROTOCOLLO SQL è annullabile e un vincolo sul tavoloJDBC: Inserimento null per colonna integer

PROTOCOL IN (1, 2, 3) 

Inoltre dal momento che è annullabile voglio impostare e ottenere i valori nulli in tabella

Ma io non posso fare setInt e getInt nullo .Come per impostare un null a colonna come nulla da JDBC

setInt(4,null); 

Grazie

+3

Hai provato il metodo setObject()? –

+2

Prova 'setObject (4, null)'. –

+0

@BheshGurung Bah, bastonatemi = p –

risposta

62

Prova a utilizzare.

pst.setNull(4, java.sql.Types.INTEGER); //pst is prepared statement instance. 

Interface PreparedStatement.setNull API

Mapping of java.sql.Types to SQL types

P.S. : Modificato per riflettere gli aggiornamenti di Java 8.

+4

+1 Ancora meglio della mia idea di usare 'setObject()'. –

+0

Come posso ottenerlo dopo aver impostato su null, getInt Restituisce null? – constantlearner

+0

@constantlearner Non ho mai avuto occasione di usarlo, ma sicuramente puoi provarci. – Smit

5

Oltre a Smit's answer:

Se si desidera inserire un Integer -oggetto in un database che può essere null, è possibile utilizzare

statement.setObject(4, yourObject, java.sql.Types.INTEGER); 

invece di

if (yourObject == null) { 
    statement.setNull(4, java.sql.Types.INTEGER); 
else { 
    statement.setInt(4, yourObject); 
} 
Problemi correlati