Interromper processo no BD caso caia a internet - JAVAFX

5 respostas
java
Lucas_Gustavo

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:

5 Respostas

rodriguesabner

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

j-menezes

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

Lucas_Gustavo

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.

Lucas_Gustavo

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:

j-menezes

PostgreSQL é excelente e Eu o uso bastante.

Criado 16 de janeiro de 2020
Ultima resposta 16 de jan. de 2020
Respostas 5
Participantes 3