Resolvido - Update não altera

Tenho esse seguinte código pra alterar o campo CalibragemVeiculo pra data atual, eu já olhei revisei o Código inteiro e não encontrei o erro e venho aqui pedir ajuda.

aparece como alterado TRUE mas não altera.

ele não dá erro no codigo porem não atualiza.
executei o Update diretamente no banco e atualizou certo então não é erro de sintaxe do update.

Aqui estão minhas classe.

Classe UpdateDAO

public class UpdateDAO {

private PreparedStatement pst;
private ResultSet rs;
private Connection con;
private String sql;

public boolean AlterarVeiculo(Update l) throws ClassNotFoundException, SQLException {

    try {

        sql = "update dbo_log_08Checklist set CalibragemVeiculo=Now() where Veiculo=?;";
        con = Updates.cb();
        pst = con.prepareStatement(sql);
        pst.setString(1, l.getVeiculo());
        pst.executeUpdate();
        con.close();

        return true;

    } catch (SQLException ex) {

        Logger.getLogger(UpdateDAO.class.getName()).log(Level.SEVERE, null, ex);

    }

    return false;

}

Classe Modelo - OBS aqui já fiz com letra Maiúscula e também não foi.

public class Update {

private String calibragemVeiculo;
private String veiculo;
private String caligragemCarreta;
private String carreta1;

public Update() {
}

public Update(String calibragemVeiculo, String veiculo, String caligragemCarreta, String carreta1) {
    this.calibragemVeiculo = calibragemVeiculo;
    this.veiculo = veiculo;
    this.caligragemCarreta = caligragemCarreta;
    this.carreta1 = carreta1;
}

public String getCalibragemVeiculo() {
    return calibragemVeiculo;
}

public void setCalibragemVeiculo(String calibragemVeiculo) {
    this.calibragemVeiculo = calibragemVeiculo;
}

public String getVeiculo() {
    return veiculo;
}

public void setVeiculo(String veiculo) {
    this.veiculo = veiculo;
}

public String getCaligragemCarreta() {
    return caligragemCarreta;
}

public void setCaligragemCarreta(String caligragemCarreta) {
    this.caligragemCarreta = caligragemCarreta;
}

public String getCarreta1() {
    return carreta1;
}

public void setCarreta1(String carreta1) {
    this.carreta1 = carreta1;
}

}

Classe Conexão

public class Updates {

 public static Connection con;

private static final String driver = “net.ucanaccess.jdbc.UcanaccessDriver”;
private static final String url = “jdbc:ucanaccess://\\D:\MasterLink\android_conexao\consulta_android.accdb; memory = false”;
private static final String username = “”; //sem login
private static final String password = “”; //sem senha

public static Connection cb () throws ClassNotFoundException, SQLException{

    Class.forName(driver);
    con = DriverManager.getConnection(url, username, password);
    return con;
}

public static void db(){

  try{
  con.close();
  }catch(SQLException ex){
 Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
}

}

}

Já tentou remover “;” da string sql ?
E aplicar o commit da transação ?

Ou é a falta de commit (q n deveria por vc n estar desativando o autocommit) ou seu where n está encontrando o devido veículo. Geralmente no where se usa a PK. Printa oq vem neste atributo veiculo ai faz um select com o mesmo where e valor pra vr se vem item.

ele funciona com esse ; é bd Access

Acho seu true deveria ser baseado no retorno de executeUpdate().

não entendi, como ?

Te aconselho a dares uma olhada no javadoc do método executeUpdate(): https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#executeUpdate()
Ele retorna 0 para afirmações que não retornam nada e o número de linhas para afirmações DML(teu caso).
Acho que deverias olhar esse número de linhas que deve ser retornado.

public boolean AlterarVeiculo(Update l) throws ClassNotFoundException{

        sql = "update dbo_log_08Checklist set CalibragemVeiculo=Date() where Veiculo=?;";
       try {
                    con=Updates.cb();
		pst = con.prepareStatement(sql);
		pst.setString(1, l.getVeiculo());
                    pst.executeUpdate();  //ERRO NESSA LINHA, NÃO CONSIGO IDENTIFICAR
                    pst.close();
                    return true;
                    
	} catch (SQLException e) {
		Logger.getLogger(LoginDAO.class.getName()).log(Level.SEVERE, null, e);
                    
	}
    return false;
           

}

ele dá erro nessa Linha

at net.ucanaccess.jdbc.UcanaccessPreparedStatement.execute(UcanaccessPreparedStatement.java:241)
at MasterlinkDAO.UpdateDAO.AlterarVeiculo(UpdateDAO.java:38)

O nome de tua tabela é dbo_log_08Checklist mesmo ?
Não mais informações sobre o erro ? o import de PreparedStatement está correto ? Já que apareceu UcanaccessPreparedStatement aí.

Resolvi, como eu uso banco de dados Access tive que Compactar e Reparar o banco pra excluir as linhas em branco sem preencher, o bd estava se perdendo nas linhas…