Example #1
0
 def obtenerCursor(cls):
     if cls.__cursor is None:
         try:
             cls.__cursor = cls.obtenerConexion().cursor()
             logger.debug(f'Se abrió el cursor con éxito: {cls.__cursor}')
             return cls.__cursor
         except Exception as e:
             logger.error(f'Error al obtener cursor: {e}')
     else:
         return cls.__cursor
Example #2
0
 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[0], registro[1], registro[2],
                           registro[3])
         personas.append(persona)
     Conexion.cerrar()
     return personas
Example #3
0
 def cerrar(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.__conexion is not None:
         try:
             cls.__conexion.close()
         except Exception as e:
             logger.error(f'Error al cerrar conexión: {e}')
     logger.debug('Se han cerrado los objetos de conexion y cursor')
Example #4
0
 def eliminar(cls, persona):
     try:
         conexion = Conexion.obtenerConexion()
         cursor = Conexion.obtenerCursor()
         logger.debug(cursor.mogrify(cls.__ELIMINAR))
         logger.debug(f'Persona a eliminar: {persona}')
         values = (persona.get_id_persona())
         cursor.execute(cls.__ELIMINAR, values)
         conexion.commit()
         return cursor.rowcount
     except Exception as e:
         conexion.rollback()
         logger.error(f'Excepción al eliminar persona: {e}')
     finally:
         Conexion.cerrar()
Example #5
0
 def obtenerConexion(cls):
     if cls.__conexion is None:
         try:
             cls.__conexion = db.connect(host=cls.__HOST,
                                         user=cls.__USERNAME,
                                         password=cls.__PASSWORD,
                                         port=cls.__DB_PORT,
                                         database=cls.__DATABASE)
             logger.debug(f'Conexion exitosa: {cls.__conexion}')
             return cls.__conexion
         except Exception as e:
             logger.error(f'Error al conectar a la BD: {e}')
             sys.exit()
     else:
         return cls.__conexion
Example #6
0
 def actualizar(cls, persona):
     try:
         conexion = Conexion.obtenerConexion()
         cursor = Conexion.obtenerCursor()
         logger.debug(cursor.mogrify(cls.__ACTUALIZAR))
         logger.debug(f'Persona a actualizar: {persona}')
         values = (persona.get_nombre(), persona.get_apellido(),
                   persona.get_email(), persona.get_id_persona())
         cursor.execute(cls.__ACTUALIZAR, values)
         conexion.commit()
         return cursor.rowcount
     except Exception as e:
         conexion.rollback()
         logger.error(f'Excepción al actualizar persona: {e}')
     finally:
         Conexion.cerrar()
Example #7
0
        return self.__apellido

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

    def get_email(self):
        return self.__email

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

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


if __name__ == '__main__':
    persona1 = Persona(1, 'Juan', 'Pérez', 'email')
    logger.debug(persona1)
    # simulando un objeto a inserta de tipo persona
    persona2 = Persona(nombre='Karla',
                       apellido='Gómez',
                       email='*****@*****.**')
    logger.debug(persona2)

    # simular el caso de eliminar un objeto persona
    persona3 = Persona(id_persona=3)
    logger.debug(persona3)
Example #8
0
            values = (persona.get_id_persona())
            cursor.execute(cls.__ELIMINAR, values)
            conexion.commit()
            return cursor.rowcount
        except Exception as e:
            conexion.rollback()
            logger.error(f'Excepción al eliminar persona: {e}')
        finally:
            Conexion.cerrar()


if __name__ == '__main__':
    # personas = PersonaDao.seleccionar()
    # for persona in personas:
    #     logger.debug(persona)

    # Insertamos un nuevo registro
    # persona = Persona(nombre='Pedro', apellido='Najera', email='*****@*****.**')
    # personas_insertadas = PersonaDao.insertar(persona)
    # logger.debug(f'Personas insertadas: {personas_insertadas}')

    # Actualizar un registro existente
    # persona = Persona(1, 'Juan', 'Pérez2', '*****@*****.**')
    # persona_actualizada = PersonaDao.actualizar(persona)
    # logger.debug(f'Personas actualizadas: {persona_actualizada}')

    # Eliminar un registro existente
    persona = Persona('9')
    personas_eliminadas = PersonaDao.eliminar(persona)
    logger.debug(f'Personas elimiadas: {personas_eliminadas}')