Java JDBC, faz sentido eu salvar os dados da minha aplicação e dois locais?

7 respostas Resolvido
Alysson_Alves1

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?

7 Respostas

Lucas_Camara

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.

Alysson_Alves1

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.

Lucas_Camara
Solucao aceita

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.

Alysson_Alves1

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;
	}
}
Lucas_Camara

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.

Alysson_Alves1
GerenciaCon b=new GerenciaCon();
	
	try {
		b.AtualizaContaBD();
		b.JDBC().close();
	} catch (SQLException e) {
		b.JDBC().close();
		e.printStackTrace();
	}
Lucas_Camara

Então é o que tinha pensado msm. Vc não precisar criar uma instância de GerenciaCon dentro dela mesmo.

Criado 5 de junho de 2020
Ultima resposta 5 de jun. de 2020
Respostas 7
Participantes 2