[quote=Granella]Olá, como vai?!
Para trabalhar com JDBC no Oracle você deve utilizar os tipos dele, no caso de data deve utilizar oracle.sql.DATE…
Segue um exemplo:
[code]…
StringBuilder sql = new StringBuilder();
sql.append("SELECT RESID, TO_CHAR(RESDTA, ‘DD/MM/YYYY’) ");
sql.append("FROM FEFRESERVAS ");
sql.append(“WHERE RESDTA = ?”);
SimpleDateFormat sdf = new SimpleDateFormat(“dd/MM/yyyy”);
java.util.Date dat = sdf.parse(“22/01/2008”);
Timestamp tsmp = new Timestamp(dat.getTime());
PreparedStatement stmt = con.prepareStatement(sql.toString());
((OraclePreparedStatement) stmt).setDATE(1, new oracle.sql.DATE(tsmp));
ResultSet rs = stmt.executeQuery();
…[/code]
Assim pode usar o setDATE mas do Oracle e se perceber tem um cast para o OraclePreparedStatement para poder usar o setDATE.
Se não quiser ter esse trabalho todo pode passar como String mesmo mas convertendo o parametro na SQL no BD com o TO_DATE, assim:
[code]…
StringBuilder sql = new StringBuilder();
sql.append("SELECT RESID, TO_CHAR(RESDTA, ‘DD/MM/YYYY’) ");
sql.append("FROM FEFRESERVAS ");
sql.append(“WHERE RESDTA = TO_DATE(?, ‘DD/MM/YYYY’)”);
PreparedStatement stmt = con.prepareStatement(sql.toString());
stmt.setString(1, “22/01/2008”);
ResultSet rs = stmt.executeQuery();
…[/code]
Até[/quote]
Nao seria interessante atrelar diretamente com Driver por exemplo utilizar oracle.sql.DATE se mudar o banco conseqüentemente mudará o Driver mas vc irá alterar o codigo para nao utilizar oracle.sql.DATE
Neste caso vc pode resolver desta maneira:
java.util.Date d = new java.util.Date();
pst.setDate(1, new java.sql.Date (d.getTime()));
Caso vc utilize Timestamp
Desta forma:
Date d = new Date();
pst.setTimestamp(1, new Timestamp(d.getTime()));