package br.com.cafebinario.database; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.apache.log4j.Logger; import br.com.cafebinario.exception.DBException; import br.com.cafebinario.properties.AppProperties; public class DataBase { private static Logger LOG = Logger.getLogger(DataBase.class); private static DataBase thisInstance = new DataBase(); public static DataBase instanceOf() { return DataBase.thisInstance; } protected AppProperties properties = AppProperties.instanceOf(); private DataBase() { } public Connection getConnection() throws DBException { return getConnection(properties.getProperty("DRIVER_DB"), properties.getProperty("STR_CON_DB"), properties.getProperty("USER_DB"), properties.getProperty("PASSWD_DB")); } public Connection getConnection(String driverDbName, String strConnName) throws DBException { return getConnection(properties.getProperty(driverDbName), properties.getProperty(strConnName), properties.getProperty("USER_DB"), properties.getProperty("PASSWD_DB")); } public Connection getConnection(String driverDbName, String strConnName, String user, String passwd) throws DBException { Connection connection = null; try { Class.forName(driverDbName); connection = DriverManager.getConnection(strConnName, user, passwd); } catch (ClassNotFoundException e) { LOG.error("Driver BD nao encontrado", e); throw new DBException("Driver DB nao encontrado"); } catch (SQLException e) { e.printStackTrace(); LOG.error("Problemas de conexao com banco de dados", e); throw new DBException( "Problemas ao estabelecer conexao com banco de dados"); } return connection; } }