Я использую библиотеку psycopg2 для обработки соединения с базой данных Postgress.
Сравнимы ли следующие два подхода к обработке соединения БД?
Фрагмент 1:
cnx = connect(user=<...>, password=<...>, host=<...>, database=<...>)
cursor = cnx.cursor()
cursor.execute(sql)
cnx.close()
Снипет 2:
with psycopg2.connect(user=<...>, password=<...>, host=<...>, database=<...>) as cnx:
cursor = cnx.cursor()
cursor.execute(sql)
Мне особенно интересно, если использование WITH автоматически закрывает соединение? Мне сообщили, что второй подход предпочтительнее, потому что он автоматически закрывает соединение. Тем не менее, когда я тестирую его с помощью cnx.closed, он показывает открытое соединение.