上週的內容中,已經成功的可以透過 Go 初始化資料庫,接著這禮拜就會以操作資料庫為主軸。
首先,要先來看一整個完整的資料庫操作的程式架構,大致可以分成 3 層:

Handler :負責資料處理及驗證,例:使用者不該可以買負數個商品Service :負責處理複雜邏輯,例:成功購買商品後,處理庫存、總價Query :負責跟 Database 溝通為什麼會需要分這三層呢?如果將這三個角色的程式寫在一起很容易遇到這些問題:
為了讓這三層可以溝通,會使用 Interface 實現:Handler 呼叫 Service,Service 呼叫 Query。接著以下是定義及使用一個 Interface 的範例:
type Calculator interface {
Add(a, b int) int
Sub(a, b int) int
}
type Computor struct {
Cal Calculator
}
Cal 內一定有 Add() 及 Sub() ,但不限制實際邏輯