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…
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]
É 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
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!!!
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.