資料庫設計 - 有效的使用系統資料 - 第八章 - 程式語言串接資料庫的設計與實作

Python 串接 MySQL 資料庫

  1. 安裝 python 與 mysql 的 connector 
    執行
    pip3 install mysql-connector-python
  2. 建立 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 要關閉,向外部存取資源時,都會有

      建立資源通道 -> 關閉資源通道

      的動作,如果沒有關閉,系統會不斷佔用資源,最後當機,所以常常看到電腦重開機就會恢復正常,多是因為系統累積太多沒有在使用,或是忘記關閉的資源通道造成的,重新開啟釋放資源後,就會恢復正常。

重要觀念

  1. 連線可能會發生問題
  2. 資料庫使用完畢後要關閉連線

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("關閉資料庫")
  • 執行結果

優點

  • 過程更安全
  • 能提高系統穩定度

資料存取物件 DAO

  • Data Access Object

物件關係對應 ORM

  • Object - Relational Mapping
    程式語言中的物件可以對到資料庫中的一張 Table
  • 使用封裝好的物件操作資料
    class 裡的屬性都次 private,放入 Get 與 Set 方法


Comments

Popular posts from this blog

《 Imgproxy 使用分析一:圖片下載速度優化分析:Akamai CDN vs Imgproxy 效能比較》

《 Akamai + S3 與 CloudFront + Imgproxy + S3 使用分析二:壓縮圖片設計流程:檔案大小 vs 載入時間的權衡》

程式語言初學者 Docker 入門第二章 —— 安裝與驗證 (Mac)