資料庫設計 - 有效的使用系統資料 - 第八章 - 程式語言串接資料庫的設計與實作
Python 串接 MySQL 資料庫
- 安裝 python 與 mysql 的 connector 執行
pip3 install mysql-connector-python
- 建立 practice.py 檔練習串接 MySQL 資料庫
# practice.py from mysql import connector connection = connector.connect(host="localhost", database="orders", user="root", password="********") cursor = connection.cursor() cursor.execute("select database();") record = cursor.fetchone() print(record)
- host:資料庫的 IP 位址
- database: database scheme 名稱
- user: 當初設定 MySQL 資料庫時的 user 名稱
- password: 當初設定 MySQL 資料庫時的 password
- execute("SQL 語法"): 將要執行的 SQL 語法放入 execute 的參數中
- 用 fetchone 取回回傳值
當輸入 "select database();" 時,可以看到取得我們匯入到 MySQL 的 orders 資料庫
與在 workbench 執行 select database(); 是一樣的 - connection.close(): 非常重要,一定要做!!!
資料庫不用,但在開發應用程式時,使用完 connection 要關閉,向外部存取資源時,都會有建立資源通道 -> 關閉資源通道
的動作,如果沒有關閉,系統會不斷佔用資源,最後當機,所以常常看到電腦重開機就會恢復正常,多是因為系統累積太多沒有在使用,或是忘記關閉的資源通道造成的,重新開啟釋放資源後,就會恢復正常。
重要觀念
- 連線可能會發生問題
- 資料庫使用完畢後要關閉連線
try except finally
用來避免發生錯誤時,系統資源佔用的問題,其結構如下
try
# 執行連線,和連線後的要執行的動作
except
# 發生連線錯誤時,我要回應的做法
finally
# 不論程式中間發生任何事情,我都會完成「中斷連線」的動作後才離開程式
這樣可以確保應用程式不會因為發生錯誤,而佔住一個資料庫的連線資源。
- 程式碼如下
from mysql import connector try: connection = connector.connect(host="localhost", database="orders", user="root", password="A@a29343604") cursor = connection.cursor() cursor.execute("select database();") record = cursor.fetchone() print(f"連線成功,資料庫列表:{record}") except connector.Error as e: print(f"發生錯誤:{e}") finally: connection.close() print("關閉資料庫")
- 執行結果
Comments
Post a Comment