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

FORRESTJUMP

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

Recommended Posts

FORRESTJUMP

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.

Share this post


Link to post
Share on other sites
Knitter

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.

Share this post


Link to post
Share on other sites
FORRESTJUMP

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.