[Ajuda] Retornando Hora

8 respostas
J

Galera, boa tarde

estou tentando retornar data e hora do banco de dados para a classe principal, estou usando um ArrayList para retornar todos os dados, pois preciso deles no botão pesquisar, mas na hora de retornar a hora, tá dando dados incompatíveis e não sei como fazer essa parte! To preso aqui!

Vou mandar para vocês o script principal e o script onde to fazendo as operações!

Script Principal:

private void btnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

String placa, hrsaida, modelo ="", cor="", marca="";

String hrEntrada = “”;

placa = txtPlaca.getText();

hrsaida = txtSaida.getText();

Operacoes op = new Operacoes();

ArrayList lista = op.listarSaida(placa);

for(int k = 0; k<lista.size(); k++){

modelo += lista.get(k).getModelo();

cor += lista.get(k).getCor();

marca += lista.get(k).getMarca();

hrEntrada = lista.get(k).getTimestampHrentrada().toString();

}

txtModelo.setText(modelo);

txtCor.setText(cor);

txtMarca.setText(marca);

txtEntrada.setText(hrentrada);

}

Script Operacoes:

public ArrayList listarSaida(String placa)

{

ArrayList lista = new ArrayList();

try{

ps = conexao.prepareStatement(select Placa, Modelo, Cor, Marca, DataEntrada from Cadastro where Placa = ?”);

ps.setString(1, placa);

rs = ps.executeQuery();

while(rs.next())

{

lista.add(new Carro(rs.getString(placa), rs.getString(modelo), rs.getString(cor), rs.getString(marca), rs.getTimestamp(hrentrada)));

}

}

catch(SQLException ex)

{

JOptionPane.showMessageDialog(null, Problema ao pesquisar os dados do carro+ex.getMessage());

}

finally

{

try{

conexao.close();

}

catch(SQLException ex)

{

JOptionPane.showMessageDialog(null, Problema ao finalizar a conexao com banco de dados+ex.getMessage());

}

}

return(lista);

}

8 Respostas

J

Dá erro de Column Not Found

Mas existe a coluna no banco de dados

J

Primeiro: Use as tags para formatar melhor sua pergunta, fica mais legivel. Tem um tutorial aqui que explica como funciona e para que serve cada tag.
Segundo: Provavelmente seu banco é case-sense, a julgar por essa linha:

select Placa, Modelo, Cor, Marca, DataEntrada from Cadastro where Placa = ?
de sql, porem aqui no ResultSet você esta pegando

while(rs.next()) { lista.add(new Carro(rs.getString("placa"), rs.getString("modelo"), rs.getString("cor"), rs.getString("marca"), rs.getTimestamp("hrentrada"))); }
Ou seja, todos os campos minusculos, enquanto no sql do select eles estão maiusculos, fora que tu esta no sql chamando o campo DataEntrada, e no ResultSet está tentando pegar hrentrada, que onde pode estar o erro.
Primeiro verifica se o sql de select funciona, se funcionar acerta os rs.get, colocando com a mesma declaração.

J

Perfeito! foi isso mesmo!

Eu to retornando a Hora armazenada no banco de dados, aí como eu faço pra fazer uma diferença dessa hora armazenada e a hora atual?

Porque eu quero fazer o seguinte:

Diferenca(Em Horas) = Hora Atual - Hora Armazenada

Aí através dessa diferença eu vou calcular quanto deve ser pago!

Brigadão pela ajuda e desculpe qualquer coisa.

InSeOfKn

primeiro pegue a data em milissegundos desde 1 de janeiro de 1970 das duas datas com o getTime() depois é so diminuir que você tara a diferença entre elas em milissegundos

veja a baixo

long diferencaEmMilissegundo = dataAtual.getTime()-dataDoBanco.getTime();

até mais!

J

Mas a hora armazenada e a hora atual, tão no tipo Timestamp e tá no formato (“dd-MM-yyyy hh:mm:ss”)

Preciso calcular a hora pra saber quanto o cliente vai ter que pagar

InSeOfKn

com Timestamp eu não sei como fazer o exemplo que dei foi com Date

mais da um olhada na documentação deve ter algo parecido para Timestamp

InSeOfKn

dei uma espiada na documentação e parece que ha o método getTime que faz exatamente oque o getTime do Date faz

obs: para ter a diferença em horas

diferencaEmHora =diferencaEmMilissegundo/1000/60/60;

até mais!

J

Fiz exatamente isso e deu certo! Muito obrigado pela ajuda!

Forum show de bola! Aconselho à todos!

Criado 21 de outubro de 2010
Ultima resposta 23 de out. de 2010
Respostas 8
Participantes 3