Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Silva Mateus

Erro ao testar o pool de conexões

Recommended Posts

Olá amigos do fórum. Hoje trago a seguinte questão: 
 

Estou iniciando os estudos sobre conexões JAVA/Postgres. E me deparei com o seguinte problema: 
Quando tento testar a minha classe chamada, "PoolDeConexoes", ela me retorna os seguintes erros: 


"Exception in thread "main" java.lang.NullPointerException
    at BDAccess.PoolDeConexoes.<init>(PoolDeConexoes.java:13)
    at BDAccess.PoolDeConexoes.getInstance(PoolDeConexoes.java:21)
    at BDAccess.Main.main(Main.java:9)" 

 

Porém, a IDE não me exibe nenhum erro semântico durante a digitação, então, o mais provável é que se trata de um erro lógico. 
Abaixo estão as minhas classes, todas comentadas com o devido processo do pool de conexões, nos moldes solicitados pelo meu professor. 

 

package BDAccess;

import java.util.ArrayList;

public class PoolDeConexoes {

	private static ArrayList<Conexao> conexoes;
	private static PoolDeConexoes pool;
	
	private PoolDeConexoes() {
		Conexao cn1 = new Conexao();
		Conexao cn2 = new Conexao();
		conexoes.add(cn1);
		conexoes.add(cn2);
		
		getConexao();
	}
	
	public static PoolDeConexoes getInstance() {
		if(pool == null) {
			 pool = new PoolDeConexoes();
		}
		return pool ;
	}
	
	public Conexao getConexao() {
		if(conexoes == null) {
			Conexao c = new Conexao();
			conexoes.add(c);
			return c;
		}else {
			for(Conexao s:conexoes) {
				if(s.isLivre()) {
					return s;
				}
			}
		}
		return null;
		
	}
}

Acima, a classe denominada: PoolDeConexoes.java

 

package BDAccess;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class Conexao {

	private Connection cnx; 
	private boolean livre; 
	
	public Conexao() {
		this.livre = true; 
		
		Parametros prm = Parametros.getInstance();
		
		String driverJDBC = prm.getParametros("driverJdbc");
		
		String urlBanco = prm.getParametros("urlBanco");
		
		String nomeUsuario = prm.getParametros("nomeUsuario");
		
		String senha = prm.getParametros("senha");
		
		try {
			
			Class.forName(driverJDBC);
			System.out.println("Driver importado!");
			
			cnx = DriverManager.getConnection(urlBanco, nomeUsuario, senha);
			
			System.out.println("Conexão estabelecida");
			
		}catch (Exception e) {
			System.out.println("Conexão não estabelecida!");
		}
	}
	

	public Connection getConnection() {
		return cnx; 
	}
	
	public void reserva() {
		if(livre) {
			livre = false;
		}else {
			System.out.println("Esta conexão já está em uso!");
		}
	}
	
	public void libera() {
		livre = true; 
	}
	public boolean isLivre() {
		return livre;
	}
	
}

Acima, a classe com o objeto Conexão. 

package BDAccess;

import java.io.IOException;
import java.util.ArrayList;

public class Main {

	public static void main(String[] args) throws IOException{
 		PoolDeConexoes plc = PoolDeConexoes.getInstance();
 		
 		System.out.println(plc.getConexao());
	}
}

E aqui o meu método principal. 

Agradeço desde já pelo auxílio de vocês sobre a minha questão. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, preciso de ajuda em Relação a Instalar o Jasper Reports no Eclipse, pois a opção de Eclipse Marketplace, não encontra para instalar.
       
      Já tentei de todas as formas mas não consegui, alguém conhece alguma rotina explicando este procedimento ?
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amantes da informática.
       
      Saudações.
       
      Estou usando o Eclipse Mars versão 4.5.0  e o 4.5.2, acredito que deva ter versões mais novas. 
      Sou novato em JAVA e estou encontrando alguns problema em Instalação de alguns plugins, como por exemplo:
       
      1) quando tento instalar o JBoss Tools através do Eclipse Marteplace, o Eclipse não o encontra na lista de plugins.
      2) se tento instalar através do Install New Software, abaixa alguns arquivos, mas também não instala o JBoss.
      3) se abro o site e arrasto o download para a área de trabalho do Eclipse, também não instala o JBoss.
       
      Caros amigos, existe outra alguma forma de instalar o JBoss Tools no Eclipse e como seria ?
       
      Grato,
       
      Cesar
       
       
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.