Estou fazendo um pojetinho de banco, que envolve conexão TPC, I/O ,JDBC, Threads…, to tentando por tudo que eu aprendi nessa experiencia, mas faz sentido eu usar o I/O pra salvar em arquivos no diretorio da minha aplicação sendo que eu já vou salvar todos os dados no SQL? no caso a aplicação já esta com esse sistema de receber os dados dos clientes do servidor e salvar nas pastas que eu especifiquei, seria o caso de eu simplesmente substitiuir esse esquema pelo SQL?
Dependendo do que for salvo, há mais de uma estratégia a ser seguida. Por exemplo, um sistema que possui upload de arquivos para fazer o gerenciamento de documentos, pode armazenar os arquivos no banco ou no sistema de arquivos do servidor.
Então, ele salva a conta a cada atualização feita nela, eu estava pensando que supondo que fosse uma aplicação usual, e de repente a requisição com o DB falhasse em uma dessas operações, eu teria o estado salvo no próprio servidor, mas pensando desse jeito não teria o pq de eu usar um banco de dados, por isso to confuso rsrs, por mais que seja pra aprendizado quero fzr algo funcional sem coisas desnecesárias.
Então, pensando numa aplicação usual, no caso de uma possível falha de conexão com o BD, bastaria o sistema retornar uma mensagem de que não foi possível executar a operação. E caso a funcionalidade for algo mais crítico, há mecanismos para contornar possíveis falhas de ambiente, como replicação ou mensageria para garantir a entrega dos dados à determinado destino. Mas cada caso é um caso.
No final, o que quero dizer é que cada cenário tem que ser analisado de perto para aplicar a solução adequada.
Ei pode me ajudar com outro problema? Pq isso ta dando looping inifinitto?
package JDBC;
import java.sql.*;
public class GerenciaCon {
GerenciaCon conect = new GerenciaCon();
public Connection JDBC() throws SQLException {
return DriverManager.getConnection("jdbc:mysql://localhost/Banco", "root", "@Menino100");
}
public ContaDAO AtualizaContaBD() throws SQLException {
ContaDAO Conta = new ContaDAO();
PreparedStatement att = conect.JDBC().prepareStatement("Select*from Contas");
ResultSet rs = att.executeQuery();
while(rs.next()) {
int i = 0;
System.out.println(i++);
}
return Conta;
}
}
Como vc está chamando chamando esse método AtualizaContaBD? Acho que o loop infinito é por conta dessa linha:
GerenciaCon conect = new GerenciaCon();
Pois, em algum momento, vc instancia a classe GerenciaCon para usar o método AtualizaContaBD. E, ao instanciar, a instância é criada de novo (nessa linha que mencionei acima) e o ciclo se repete.
GerenciaCon b=new GerenciaCon();
try {
b.AtualizaContaBD();
b.JDBC().close();
} catch (SQLException e) {
b.JDBC().close();
e.printStackTrace();
}
Então é o que tinha pensado msm. Vc não precisar criar uma instância de GerenciaCon dentro dela mesmo.