在Python中,可以使用sqlite3庫來處理SQLite數據庫的事務。以下是一個示例代碼,展示了如何在Python中使用sqlite3庫進行事務處理:
import sqlite3
# 連接到數據庫
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
try:
# 開始事務
cursor.execute("BEGIN TRANSACTION")
# 執行SQL語句
cursor.execute("INSERT INTO test (col1, col2) VALUES (?, ?)", values1)
cursor.execute("INSERT INTO test (col1, col2) VALUES (?, ?)", values2)
# 提交事務
conn.commit()
except:
# 發生異常,回滾事務
conn.rollback()
raise
finally:
# 關閉游標和連接
cursor.close()
conn.close()
在上面的示例代碼中,我們首先連接到名為example.db的SQLite數據庫。然后,我們使用cursor對象執行SQL語句,并使用BEGIN TRANSACTION開始事務。接下來,我們執行了兩個INSERT語句,將數據插入到test表中。最后,我們使用conn.commit()提交事務。
如果在執行SQL語句時發生異常,我們會捕獲該異常并使用conn.rollback()回滾事務。這樣可以確保數據的一致性,避免因為異常而導致的數據不一致問題。
無論是否發生異常,我們都會在finally塊中使用cursor.close()關閉游標,并使用conn.close()關閉數據庫連接。這樣可以確保資源的正確釋放,避免資源泄漏問題。