Dúvida em relação ao método setDate(int, Date) da interface PreparedStatement

Ao utilizar o método setDate(int, Date) da interface PreparedStatement sempre sou obrigado a realizar um cast do segundo parâmetro, pois minhas classes possuem atributos java.util.Date e não java.sql.Date como esperado.

Desta maneira, sempre me vejo obrigado a realizar o seguinte comando:

PreparedStatement pst = conn.preparedStatement(sql); pst.setDate(1, new java.sql.Date(dataParam.getTime())); ResultSet rs = pst.executeQuery();

Gostaria de saber se há alguma maneira diferente de passar parâmetros do tipo Data sem ter que realizar esta conversão (o que pode ocasionar erros caso dataParam for nula)?

Obrigado!

[quote=mtosatti]Ao utilizar o método setDate(int, Date) da interface PreparedStatement sempre sou obrigado a realizar um cast do segundo parâmetro, pois minhas classes possuem atributos java.util.Date e não java.sql.Date como esperado.

Desta maneira, sempre me vejo obrigado a realizar o seguinte comando:

PreparedStatement pst = conn.preparedStatement(sql); pst.setDate(1, new java.sql.Date(dataParam.getTime())); ResultSet rs = pst.executeQuery();

Gostaria de saber se há alguma maneira diferente de passar parâmetros do tipo Data sem ter que realizar esta conversão (o que pode ocasionar erros caso dataParam for nula)?

Obrigado![/quote]

O metodo setDate espera um java.sql.Date, não tem como fugir. Quanto ao null, vc vai ter que testar antes, tipo:

if(dataParam != null) {
pst.setDate(1, new java.sql.Date(dataParam.getTime()));
} else {
pst.setNull(1, java.sql.Types.DATE);
}

[]´s