preparedStatement para passar um comando sql

eu testei isso no firebird, e funcionou:

sendo os atributos INT, INT, DATE, TIME, FLOAT respectivamente.

entao, no meu codigo, fiz:

ps = dbc.con.prepareStatement( "INSERT INTO CAIXA VALUES (GEN_ID( CAIXA_ID, 1 ), ?, ?, ?, ? )");
ps.setInt(1, 1);
ps.setObject(2, "CURRENT_DATE", Types.DATE);
ps.setObject(3, "CURRENT_TIME", Types.TIME);
ps.setObject(4, this.total);
ps.executeUpdate();

Isso me da o seguinte erro:
java.sql.SQLException: Unexpected Exception:null

ja tinha testando essa inclusao antes, sem a data e a hora, e funciona, entaoa credito que o problema esta nas linhas em que passo current_time e current_date. Ja tentei tb ps.setDate, e ps.setTime. Alguém consegue vizualizar o que está errado?

Opa,

continue usando o setDate só que como você quer o tempo atual use o seguinte código:

java.util.Date dataAtual = new java.util.Date(); java.sql.Date data = new java.sql.Date(d.getTime()); ps.setDate(x, data);

:okok:

Na realidade, eu precisaria da Data de hora, e da hora atual, e o metodo java.util.Date.getTime() retorna um valor em milissegundos. Isso nao serviria pra mim.

Na realidade, eu precisaria da data e da hora atual, e o metodo java.util.Date.getTime() retorna um valor em milissegundos. Isso nao serviria pra mim. Eu chego na data e na hora atual, através de subclasses da classe Date, como a DateFormat e SimpleDateFormat por exemplo, não que esse tipo de dados nao eh aceito pelo metodo setDate do preparedStatement

isso me resolveu o problema:

ps = dbc.con.prepareStatement( "INSERT INTO CAIXA VALUES ( GEN_ID( CAIXA_ID, 1 ), ?, CURRENT_DATE, CURRENT_TIME, ? )");
ps.setInt(1, 1);
ps.setObject(2, this.total);
ps.executeUpdate();

apenas passei os comandos para dentro do prepareStatement()

Agora eu pergunto, nao da pra passar instrucoes SQL via setObject? Pelo que eu li, dá. Vejam:
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html#setObject(int,%20java.lang.Object,%20int)

alguém já usou isso?