Interromper processo no BD caso caia a internet - JAVAFX

Olá srs! Boa noite!

Uma dúvida. Construi um pequeno aplicativo CRUD na empresa em que trabalho para auxiliar nos cadastros de uma agenda de contatos, muitos simples!

E ele está funcionando perfeitamente, porém aconteceu uma situação inusitada que eu não previ e que pode acontecer novamente a qualquer momento. Ao inserir um novo contato ele grava algumas informações em tabelas separadas e nesse exato momento caiu a internet e uma parte da informação gravou em uma tabela e a outra não. Consequentemente tive problemas e precisei apagar o registro direto no BD. Pesquisando eu não achei nada, pelo menos onde eu li…

Qual seria a forma de ler se um registro que depende de outro registro foi salvo ou não no banco… e se não foi como voltar ou interromper a operação toda e não salvar nada!?

Espero ter sido claro em meu questionamento.

Desde já agradeço os conselhos!

:vulcan_salute:

Vc pode salvar esses dados em um JSON na máquina e quando a internet voltar, vc envia esse json pro banco.

Código pra verificar se tem internet ou nao:

public static void main(String[] args) {
      try {
         URL url = new URL("http://www.google.com");
         URLConnection connection = url.openConnection();
         connection.connect();
         System.out.println("Internet is connected");
      } catch (MalformedURLException e) {
         System.out.println("Internet is not connected");
      } catch (IOException e) {
         System.out.println("Internet is not connected");
      }
   }

Fonte: https://www.tutorialspoint.com/Checking-internet-connectivity-in-Java

1 curtida

Pra evitar esse problema você deve usar bancos de dados que permitem transação ACID.
Ou faz tudo que está dentro da transação ou não faz nada.
Isso que aconteceu no seu processo é inadimissivel e pra isso criaram o conceito de transação

1 curtida

Orochimaru, obrigado pelo conselho, a ideia do JSON é bem interessante. Eu criei um código bem parecido com esse para testar a conexão com a internet.

J-Menezes realmente o que aconteceu é inadmissível, estou estudando e entendendo o conceito informado por você dentro do postgresql. Mais uma vez agradeço o conselho, como sempre! :vulcan_salute:

1 curtida

PostgreSQL é excelente e Eu o uso bastante.

1 curtida