Inserir Data e hora atual no banco de dados[RESOLVIDO]

Bom dia, pessoal!!!

Eu preciso inserir a data atual no banco de dados, no qual eu declarei a célula do como DATATIME, portanto ele recebe a data e a hora. Mas como eu posso estar passando a data e a horaa atual para o banco? Na verdade eu quero chamar este método de inserção, logo que um número tambem for inserido. Quanto ao número já está tudo ok, mas quanto a data e a hora… :frowning:

Alguém poderia me ajudar?
Eu construi o método abaixo para isto:

[code]public void atualizaDataDepartamento() {

   Conexao.abrirConexao();
   GregorianCalendar d = new GregorianCalendar();
   Date data = d.get(Calendar.DATE);//ERRO
    String comando =  "INSERT INTO departamento (diaDepartamento) values (?)";
    try {
        PreparedStatement stmtInsert = Conexao.conexao.prepareStatement(comando);
        stmtInsert.setDate(2, data); //ERRO

        stmtInsert.executeUpdate();
        Conexao.fecharConexao();
    } catch (Exception e) {
        e.printStackTrace();
    }
}[/code]

Grata a todos!!!

O parâmetro não é 1 não ?

Só vejo passando um parâmetro e você colocou na posição 2.

Você deve inserir como timestamp:

stmtInsert.setTimestamp(2,new java.sql.Timestamp(java.util.Calendar.getInstance().getTimeInMillis()));

[quote=lele_vader]O parâmetro não é 1 não ?

Só vejo passando um parâmetro e você colocou na posição 2.[/quote]

++

Veja mais sobre PreparedStatement na documentação:
http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html

[quote=g4j][quote=lele_vader]O parâmetro não é 1 não ?

Só vejo passando um parâmetro e você colocou na posição 2.[/quote]

++

Veja mais sobre PreparedStatement na documentação:
http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html[/quote]

É tem esse detalhe também, você deve passar o primeiro parâmetro que é o sinalizador da localização dos valores quie você quer “preparar” para inserir:

String comando = "Insert into pessoa(nome,sobrenome,idade,cidade) values(?,?,?,?);
stmtInsert.setString(1,"João");
stmtInsert.setString(2,"da Silva");
stmtInsert.setInt(3,25);
stmtInsert.setString(4,"Piraporinha da Serra");

Consegue visualizar como funciona ? o parametro diz qual das exclamações ele quer referenciar o valor…no caso ali:
1 - Nome
2 - Sobrenome
3 - Idade
4 - Cidade

Agora quanto a data e hora atual, é só ler meu post anterior que ta explicando, só utilizar Timestamp ao invés de Date.

Pessoal, muito obrigada pela ajuda. Fiz como sugeriram: alterei o código e declarei a varialvel no banco como Timestamp, porém o erro apresentado na execução é:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '‘2012-07-27 10:27:24.356’WHERE idTotalDepartamento =1’ at line 1

Meu código possui a nova estrutura abaixo:

[code]public void atualizaDataDepartamento() {

    Conexao.abrirConexao();
          
    String comando =  "UPDATE departamento SET "
            + "diaDepartamento '" + (new java.sql.Timestamp(java.util.Calendar.getInstance().getTimeInMillis())) + "'"
             + "WHERE idTotalDepartamento =" + 1 + ";";
    try {
         PreparedStatement stmtDelete = Conexao.conexao.prepareStatement(comando);
        stmtDelete.executeUpdate();
        Conexao.fecharConexao();  
    } catch (Exception e) {
        e.printStackTrace();
    }
}[/code]

Voces sabem comol resolvo isto?
Grata!

Pessoal, eu conclui que o problema está no milisegundos, que está aparecendo aqui como long: 10:27:24.356, porém no banco, ele deve aparecer apenas o valor inteiro. Como eu faço isto?

String comando = "UPDATE departamento SET " + "diaDepartamento '" + (new java.sql.Timestamp(java.util.Calendar.getInstance().getTimeInMillis())) + "'" + "WHERE idTotalDepartamento =" + 1 + ";";
Obrigada!!!

Pessoal, resolvi o problema!!!

Então, quando eu declarei a variável no banco como timestamp automaticamente ela pega a data e a hora atual, nao necessitanto que eu faça nenhuma atualização ou inserção.

Enfim, obrigada a todos pela ajuda!!!