• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

FORRESTJUMP

[RESOLVIDO] Como converter Timestamp SQL para java.sql.Timestamp

4 mensagens neste tópico

Boa tarde a todos.

Estou a manipular os registos de uma bd mysql, para a um aplicação em java orientada a objectos.

Existe uma classe, em que uma das variaveis de instancia é do tipo java.sql.Timestamp, assim como a parametro correspondente aos registos em mysql.

Então o problema é o seguinte, quando eu executo "querys" tipo esta, apartir da aplicaçao java:

SELECT datacriacao FROM tipotratamento

Os resultados vem para numa TableModel, em que posso manipular essa tabela de strings assim:

String.valueOf(tableModel.getValueAt(i, j));

Um print:

System.out.print(String.valueOf(tableModel.getValueAt(0, 0))); -------> 2009-01-01 12:00:00

O problema pelo qual estou a passar agora é de não conseguir passar "2009-01-01 12:00:00", para uma variavel do tipo java.sql.Timestamp.

Timestamp data = new ? ? ? ? ? ? ? String.valueOf(tableModel.getValueAt(0, 0)));

Espero que tenha conseguido explicar o problema e que alguem me possa ajudar por favor.

Desde já obrigado pela atenção e ajuda.

Cumprimentos, Forrest Jump.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora aí está algo que nunca fiz, converter uma data que vem da BD para o tipo Timestamp do package sql... Normalmente usas as classes desse package para indicar ao driver JDBC que tipo de dados queres enviar para a BD e não para usares os dados que vêm da BD, mas suponho que o que se faz num caso sirva para o outro.

Tens de usar mesmo o valor em String e converter para Timestamp? Se tiver de ser a única forma que estou a ver será fazeres isso em alguns passos, primeiro converter para java.util.Date e depois de Date para java.sql.Timestamp. A classe Date possui métodos que te podem ajudar a definir as componentes que precisas, depois converter para Timestamp é directo, usando, por exemplo, o método que devolve a data como um long.

Não estou a ver outra forma mais simples de converter essa String para um Timestamp.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acabei de solucionar, depois de uns testes com o metodo .getClass(); cheguei a conclusão que o tipo de parametro SQL Timestamp é igual ao tipo de objecto java.sql.Timestamp;

Executei o seguinte codigo:

       
        String username = "admin";
        String password = "admin";

        DALMysqlTrelabAdmin.iniciarLigacao(username, password);

        DBTable dbTable = DALMysqlTrelabAdmin.executeQuery("SELECT datacriacao FROM tipotratamento");
        TableModel tableModel = dbTable.getTableModel();
        Timestamp time = (Timestamp) tableModel.getValueAt(0, 0);

        System.out.println("TimeStamp: " + time);

        DALMysqlTrelabAdmin.fecharLigacao();

E recebi o output perfeito:

init:
deps-jar:
Compiling 1 source file to D:\ISEP\BII\Elaboração\TrelabAdmin_Java\build\classes
compile-single:
run-single:
TimeStamp: 2009-03-08 16:18:24.0
BUILD SUCCESSFUL (total time: 0 seconds)

Está assim o meu problema resolvido.

Obrigado, mesmo assim :D

Cumprimentos, Forrest Jump.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora