def getCursor(cls): if cls.__cursor is None: try: cls.__cursor = cls.getConnection().cursor() logger.debug(f"Se abrio el cursor con exito: { cls.__cursor }") return cls.__cursor except Exception as e: logger.error(f"Error al obtener cursor: {e}") sys.exit()
def closeConnection(cls): if cls.__cursor is not None: try: cls.__cursor.close() except Exception as e: logger.error(f"Error al cerrar Cursor: { e }") if cls.__connection is not None: try: cls.__connection.close() except Exception as e: logger.error(f'Error al cerrar la conexion: { e }') logger.debug("Se han cerrado los objetos de conexion y cursor")
def getConnection(cls): if cls.__connection is None: try: cls.__connection = db.connect(host=cls.__HOST, user=cls.__USERNAME, password=cls.__PASSWORD, port=cls.__DBPORT, database=cls.__DATABASE) logger.debug(f"Conexion exitosa: {cls.__connection}") return cls.__connection sys.exit() except Exception as e: logger.error(f"Error al conectar a la BD:[{e}]") else: return cls.__connection
def getPool(cls): if cls.__pool is None: try: cls.__pool = pool.SimpleConnection( cls.__MIN_CON, cls.__MAX_COM, host=cls.__HOST, user=cls.__USERNAME, password=cls.__PASSWORD, port=cls.__DBPORT, database=cls.__DATABASE) logger.debug(f"Pool Conexion exitosa: {cls.__connection}") return cls.__pool except Exception as e: logger.error(f"Error al crear el Pool de Conecciones {e}") sys.exit() return cls.__pool
def freeConnections(cls, conexion): cls.getPool().putconn(conexion) logger.debug(f"Regrese la connection al Pool { conexion }") logger.debug(f"Estado del Pool { cls.__pool }")
def getConnection(cls): #Obtener conexion connection = cls.getPool().getconn() logger.debug(f"Coneccion obtenida del Pool { connection }") return connection
def setNombre(self, nombre): self.__nombre = nombre def getApellido(self): return self.__apellido def setApellido(self, apellido): self.__apellido = apellido def getEmail(self): return self.__email def setEmail(self, email): self.__email = email if __name__ == "__main__": persona1 = Persona(1, "Yo", "Mero", "*****@*****.**") logger.debug(persona1) #De esta manera se crea el objeto sin definir el idPersona, de lo contrario se puede poner None, # pero este valor no es tan util usarlo de esa manera persona2 = Persona(nombre="Paola", apellido="Gonzalez", email="*****@*****.**") logger.debug(persona2) #Simula el caso de eliminar un objeto de tipo persona persona3 = Persona(idPersona=3) logger.debug(persona3)