package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConexao {
	// Singleton
	private static DBConexao singleton = null;
	private Connection con = null;
	private DBConfig dbConfig = null;

	private DBConexao(DBConfig dbConfig) {
		super();
		this.dbConfig = dbConfig;
	}

	public static DBConexao getInstance(DBConfig dbConfig) {
		if (singleton == null)
			singleton = new DBConexao(dbConfig);

		return singleton;
	}

	public Connection getConnection() {
		// Se a conexão não existe ainda
		if (con == null) {
			try {
				// Carrega a classe do driver JDBC
				Class.forName(dbConfig.getDriver());

				// Cria uma conexão através do Driver
				con = DriverManager.getConnection(dbConfig.getServidor() + ":"
						+ dbConfig.getPorta() + "/" + dbConfig.getUsuario(),
						dbConfig.getUsuario(), dbConfig.getSenha());
			} catch (ClassNotFoundException e) {
				System.out.println("O driver não foi importado");
				e.printStackTrace();
			} catch (SQLException e) {
				System.out.println("Erro de conexão com o banco");
				e.printStackTrace();
			}
		}

		// Retorna a conexão
		return con;
	}
}