/**
*
* @author Hector Rodriguez
*/
package com.zazil.dwh.app.dao;
import com.zazil.dwh.app.util.AppException;
import com.zazil.dwh.app.util.ServiceLocator;
import java.sql.Connection;
import java.sql.SQLException;
public class BaseDAO {
Connection conexion;
private boolean conexionCompartida;
/**
* Al utilizar este constuctor estamos usando una conexion ya creada,
* por lo cual esta conexion es compartida.
* @param conexion
*/
public BaseDAO(Connection conexion) {
this.conexion = conexion;
this.conexionCompartida = true;
}
/**
* Al utilizar este constructor la conexion es creada desde aqui
*/
public BaseDAO() {
}
/**
* Si nuestra conexion no esta inicializada entonces
* creamos una invocando a Service Locator.
* @return
* @throws AppException
*/
public Connection obtenerConexion() throws AppException{
if(this.conexion == null){
this.conexion = ServiceLocator.getInstance().getConnection();
}
return this.conexion;
}
public void cerrarConexion(){
try{
if(this.conexion != null){
if(this.esCompartida()){
//La conexion se creo en otro lugar por eso no se cierra o provocaremos una SQLException.
}else{
//La conexion se creo aqui y podemos cerrarla sin problemas.
this.conexion.close();
this.conexion = null;
}
}
}catch(SQLException ex){
}
}
public boolean esCompartida(){
return this.conexionCompartida;
}
}