Esempio n. 1
0
 def eliminar(cls, persona):
     with CursorDelPoll() as cursor:
         logger.debug(cursor.mogrify(cls.__ELIMINAR))
         logger.debug(f'Person a eliminar: {persona}')
         valores = (persona.get_id_persona(),)
         cursor.execute(cls.__ELIMINAR,valores)           
         return cursor.rowcount       
Esempio n. 2
0
 def actualizar(cls, persona):
    with CursorDelPoll() as cursor:
         logger.debug(cursor.mogrify(cls.__ACTUALIZAR))
         logger.debug(f'Person a actualizar: {persona}')
         valores = (persona.get_nombre(), persona.get_apellido(), persona.get_email(),persona.get_id_persona())
         cursor.execute(cls.__ACTUALIZAR,valores)            
         return cursor.rowcount
Esempio n. 3
0
 def insertar(cls, persona):
     with CursorDelPoll() as cursor:
         logger.debug(cursor.mogrify(cls.__INSERTAR))
         logger.debug(f'Person a insertar: {persona}')
         valores = (persona.get_nombre(), persona.get_apellido(), persona.get_email())
         cursor.execute(cls.__INSERTAR,valores)
         return cursor.rowcount
Esempio n. 4
0
 def seleccionar(cls):
      with CursorDelPoll() as cursor:
         logger.debug(cursor.mogrify(cls.__SELECCIONAR))
         cursor.execute(cls.__SELECCIONAR)
         registros = cursor.fetchall()
         personas = []
         for registro in registros:
             persona = Persona(registro[3], registro[0], registro[1], registro[2])
             personas.append(persona)
         return personas
Esempio n. 5
0
 def obtenerCursor(cls):
     if cls.__cursor is None:
         try:
             cls.__cursor = cls.obtenerConexion().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 el cursor: {e}')
             sys.exit()
     else:
         return cls.__cursor
 def seleccionar(cls):
     cursor = Conexion.obtenerCursor()
     logger.debug(cursor.mogrify(cls.__SELECCIONAR))
     cursor.execute(cls.__SELECCIONAR)
     registros = cursor.fetchall()
     personas = []
     for registro in registros:
         persona = Persona(registro[3], registro[0], registro[1],
                           registro[2])
         personas.append(persona)
     Conexion.cerrar()
     return personas
Esempio n. 7
0
    def cerrar(cls):
        if cls.__cursor is not None:
            try:
                cls.__cursor.close()
            except Exception as e:
                logger.error(f'Error al cerrar el cursor: {e}')

        if cls.__conexion is not None:
            try:
                cls.__conexion.close()
            except Exception as e:
                logger.error(f'Error al cerrar la conexion: {e}')

        logger.debug(f'Se han cerrado los objetos de Cursor y conexion')
Esempio n. 8
0
 def obtenerConexion(cls):
     if cls.__conexion is None:
         try:
             cls.__conexion = db.connect(host=cls.__HOST,
                                         user=cls.__USER,
                                         password=cls.__PASSWORD,
                                         port=cls.__DB_PORT,
                                         database=cls.__DATABASE)
             logger.debug(f'Conexion existosa: {cls.__conexion}')
             return cls.__conexion
         except Exception as e:
             logger.error(f'Error al conectar a la base de datos: {e}')
             sys.exit()
     else:
         return cls.__conexion
 def eliminar(cls, persona):
     try:
         conexion = Conexion.obtenerConexion()
         cursor = Conexion.obtenerCursor()
         logger.debug(cursor.mogrify(cls.__ELIMINAR))
         logger.debug(f'Person a eliminar: {persona}')
         valores = (persona.get_id_persona(), )
         cursor.execute(cls.__ELIMINAR, valores)
         conexion.commit()
         return cursor.rowcount
     except Exception as e:
         conexion.rollback()
         logger.error(f'Error al eliminar una persona: {e}')
     finally:
         Conexion.cerrar()
 def actualizar(cls, persona):
     try:
         conexion = Conexion.obtenerConexion()
         cursor = Conexion.obtenerCursor()
         logger.debug(cursor.mogrify(cls.__ACTUALIZAR))
         logger.debug(f'Person a actualizar: {persona}')
         valores = (persona.get_nombre(), persona.get_apellido(),
                    persona.get_email(), persona.get_id_persona())
         cursor.execute(cls.__ACTUALIZAR, valores)
         conexion.commit()
         return cursor.rowcount
     except Exception as e:
         conexion.rollback()
         logger.error(f'Error al actualizar una persona: {e}')
     finally:
         Conexion.cerrar()
Esempio n. 11
0
 def obtenerPool(cls):
     if cls.__POOL is None:
         try:
             cls.__POOL = pool.SimpleConnectionPool(cls.__MIN_CON, 
                                                    cls.__MAx_CON,
                                                    host=cls.__HOST,
                                                    user=cls.__USER,
                                                    password=cls.__PASSWORD,
                                                    port=cls.__DB_PORT,
                                                    database=cls.__DATABASE)
             logger.debug(f'Creacion de pool exitosa: {cls.__POOL}')
             return cls.__POOL
         except Exception as e:
             logger.error(f'Error al crear el pool de conexiones: {e}')
             sys.exit()
     else:
         return cls.__POOL
Esempio n. 12
0
 def __exit__(self, exception_type, exception_value, exception_traceback):
     logger.debug(f'se ejecuta el metodo __exit__()')
     if exception_value:
         self.__conn.rollback()
         logger.debug(f'Ocurrio una excepcion: {eception_value}')
     else:
         self.__conn.commit()
         logger.debug(f'Commit de la transaccion')
     #cerramos el cursor
     self.__cursor.close()
     #regresara la conexion al pool
     Conexion.liberarConexion(self.__conn)
Esempio n. 13
0
            valores = (persona.get_nombre(), persona.get_apellido(), persona.get_email(),persona.get_id_persona())
            cursor.execute(cls.__ACTUALIZAR,valores)            
            return cursor.rowcount
       
            
    @classmethod
    def eliminar(cls, persona):
        with CursorDelPoll() as cursor:
            logger.debug(cursor.mogrify(cls.__ELIMINAR))
            logger.debug(f'Person a eliminar: {persona}')
            valores = (persona.get_id_persona(),)
            cursor.execute(cls.__ELIMINAR,valores)           
            return cursor.rowcount       


if __name__ == '__main__':
    personas = PersonaDao.seleccionar()
    for persona in personas:
       logger.debug(persona)
    # persona = Persona(nombre='javier',apellido='perez',email='*****@*****.**')
    # num_registro = PersonaDao.insertar(persona)
    # logger.debug(f'Registros insertados: {num_registro}')
    
    # persona = Persona(12,'fernando','gonzalez','*****@*****.**')
    # num_reg = PersonaDao.actualizar(persona)
    # logger.debug(f'Registros actualizados: {num_reg}')
    
    # persona = Persona(id_persona=13)
    # num_reg = PersonaDao.eliminar(persona)
    # logger.debug(f'Registros actualizados: {num_reg}')
    
Esempio n. 14
0
        self.__cursor = None

    #inicio de with
    def __enter__(self):
        logger.debug('Inicio de with metodo __enter__')
        self.__conn = Conexion.obtenerConexion()
        self.__cursor = self.__conn.cursor()

        return self.__cursor

    #fin de with
    def __exit__(self, exception_type, exception_value, exception_traceback):
        logger.debug(f'se ejecuta el metodo __exit__()')
        if exception_value:
            self.__conn.rollback()
            logger.debug(f'Ocurrio una excepcion: {eception_value}')
        else:
            self.__conn.commit()
            logger.debug(f'Commit de la transaccion')
        #cerramos el cursor
        self.__cursor.close()
        #regresara la conexion al pool
        Conexion.liberarConexion(self.__conn)


if __name__ == '__main__':
    with CursorDelPoll() as cursor:
        cursor.execute('SELECT * FROM persona')
        logger.debug('Listado de persona')
        logger.debug(cursor.fetchall())
            conexion = Conexion.obtenerConexion()
            cursor = Conexion.obtenerCursor()
            logger.debug(cursor.mogrify(cls.__ELIMINAR))
            logger.debug(f'Person a eliminar: {persona}')
            valores = (persona.get_id_persona(), )
            cursor.execute(cls.__ELIMINAR, valores)
            conexion.commit()
            return cursor.rowcount
        except Exception as e:
            conexion.rollback()
            logger.error(f'Error al eliminar una persona: {e}')
        finally:
            Conexion.cerrar()


if __name__ == '__main__':
    # personas = PersonaDao.seleccionar()
    # for persona in personas:
    #     logger.debug(persona)
    # persona = Persona(nombre='javier',apellido='perez',email='*****@*****.**')
    # num_registro = PersonaDao.insertar(persona)
    # logger.debug(f'Registros insertados: {num_registro}')

    # persona = Persona(12,'fernando','gonzalez','*****@*****.**')
    # num_reg = PersonaDao.actualizar(persona)
    # logger.debug(f'Registros actualizados: {num_reg}')

    persona = Persona(id_persona=13)
    num_reg = PersonaDao.eliminar(persona)
    logger.debug(f'Registros actualizados: {num_reg}')
Esempio n. 16
0
 def cerrarConexiones(cls):
     # cerrar pool y todas sus conexiones
     cls.obtenerPool().closeall()
     logger.debug(f'Cerramos el pool: {cls.__POOL}')
Esempio n. 17
0
 def liberarConexion(cls,conexion):
     # regresar el objeto al pool
     cls.obtenerPool().putconn(conexion)
     logger.debug(f'regresamos la  conexion al pool: conexion')
     logger.debug(f'estado del pool: {cls.__POOL}')
Esempio n. 18
0
 def obtenerConexion(cls):
     # obtener una conexion de tipo pool
     conexion = cls.obtenerPool().getconn()
     logger.debug(f'Conexion obtenida del pool: {conexion}')
     return conexion
Esempio n. 19
0
    def get_apellido(self):
        return self.__apellido

    def set_apellido(self, apellido):
        self.__apellido = apellido

    def get_email(self):
        return self.__email

    def set_email(self, email):
        self.__email = email

    def __str__(self):
        return (f'Id: {self.__id_persona}, '
                f'Nombre: {self.__nombre}, '
                f'Apellido: {self.__apellido}, '
                f'Email: {self.__email}')


if __name__ == '__main__':
    persona = Persona(1, 'fran', 'mauriz', '*****@*****.**')
    logger.debug(persona)
    #simulando un objeto a insertat de tipo persona
    persona2 = Persona(nombre="esther",
                       apellido='Jaime',
                       email='*****@*****.**')
    logger.debug(persona2)
    #simular el caso de eliminar el objeto de tipo persona
    persona3 = Persona(id_persona=3)
    logger.debug(persona3)
Esempio n. 20
0
    def __enter__(self):
        logger.debug('Inicio de with metodo __enter__')
        self.__conn = Conexion.obtenerConexion()
        self.__cursor = self.__conn.cursor()

        return self.__cursor