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);
}
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.
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();