Problema ao gravar campo TIMESTAMP no Banco de Dados

6 respostas
S

Tarde a todos!

Estou iniciando meu desenvolvimento com JAVA + JSP + HTML no tomcat 5.5.16 com NEtBeans 5.5 Beta 2. (Ufa…)

Fiz um formulário onde, pelo comando “ResultSet.getString” jogo as informacoes na tela para o usuario alterar se for necessario.

Depois disso vem os comandos para gravar as informacoes no banco de dados:

ResultSet.updateString, updateInt, updateDouble, updateTimestamp!!! como segue:

if (ResultSetMetaData.getColumnTypeName(ResultSet.findColumn(Campo)) == "VARCHAR") {
                   ResultSet.updateString(Campo, Valor);
               } else if (ResultSetMetaData.getColumnTypeName(ResultSet.findColumn(Campo)) == "INT") {
                   ResultSet.updateInt(Campo, Integer.parseInt(Valor));
               } else if (ResultSetMetaData.getColumnTypeName(ResultSet.findColumn(Campo)) == "DECIMAL") {
                   ResultSet.updateDouble(Campo, Double.parseDouble(Valor));
               } else if (ResultSetMetaData.getColumnTypeName(ResultSet.findColumn(Campo)) == "BLOB") {
                   ResultSet.updateString(Campo, Valor);
               } else if (ResultSetMetaData.getColumnTypeName(ResultSet.findColumn(Campo)) == "TIMESTAMP") {
                          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                          ResultSet.updateTimestamp(Campo, Timestamp.valueOf(sdf.format(sdf.parse(Valor))));

Quando a String “Valor” é nula para um campo TIMESTAMP, dá erro.

Alguem poderia me ajudar a melhorar a rotina ou apenas a encontrar o erro dela?

grato

6 Respostas

dudaskank

Bem, vc quer dizer que a string é nula quando ela está vazia ou com formato diferente do esperado certo?

Se for esse o caso, dá uma exceção mesmo. Caso dê a exceção, que acredito ser ali onde faz o parse, você deve capturar e, ou passar null para o updateTimestamp, ou falar pro usuário colocar no formato correto.

Espero que ajude… flw

M

Se tu estiver utilizando MYSQL utilize DateTime ao invés de Timestamp.
O campo Timestamp o próprio Mysql insere / atualiza quando o registro for alterado.

E o formato para gravar data no mysql é o seguinte yyyyMMdd (Sem “-”)

[]'s

S

a rotina é a seguinte:

o usuario tem um FORM no HTML onde vai digitar (ou nao) a data.

entendo que tenho que pegar esta “String”, transformar em data e mandar para o banco de dados (Mysql).

Alguem saberia me dizer qual é a melhor forma para se fazer isso?

sds

V

samaan_filho mas tem que ser TIMESTAMP pq vc nao utiliza DATETIME como disse o macfly2500.

S

o campo é TIMESTAMP, nao é DATETIME…

V

samaan_filho que tipo de erro esta ocorrendo ?

Criado 13 de setembro de 2006
Ultima resposta 18 de set. de 2006
Respostas 6
Participantes 4