golang web從入門到精通 Mysql資料庫查詢單條、查詢所有,條件查詢

golang web從入門到精通 Mysql資料庫查詢單條、查詢所有,條件查詢

golang 簡介

Go(又稱Golang)是Google開發的一種靜態強型別、編譯型、併發型,並具有垃圾回收功能的程式語言。

golang發展前景

適合雲計算、微服務、基礎後端軟體的功能實現。

go語言優點

go是非常年輕的一門語言,“兼具Python 等動態語言的開發速度和C/C++等編譯型語言的效能與安全性”,具備強大的標準庫,內建垃圾回收機制,屬於靜態型別語言,因此具備編譯檢查和編碼規範,特別是併發功能實現簡單,但功能強大,可使用goroutine和channel輕鬆實現高併發。

golang web 優勢

語法簡單:語法簡潔,新手入門簡單,開發應用效能高。

便於維護:強型別靜態語言,便於專案的重構和維護。

部署方便:編譯的可執行二進位制檔案,在執行時,不需要部署環境,把編譯檔案上傳,就完成了專案的部署。

Mysql資料庫的查詢單條、查詢所有,條件查詢

先貼程式碼,然後解釋

golang web從入門到精通 Mysql資料庫查詢單條、查詢所有,條件查詢

程式碼中,演示了3個查詢

1、透過使用User結構體的方法實現透過User。id查詢對應的1條記錄

golang web從入門到精通 Mysql資料庫查詢單條、查詢所有,條件查詢

步驟分為:

(1)寫sql語句

sqlStr := “SELECT username,password FROM `users` WHERE `id` = ?”

(2)執行資料庫操作,需要區別下面的方法,這裡的id是來源於結構體的欄位

row := Db。QueryRow(sqlStr, u。Id)

(2。1)(可選)如果查詢不到,那麼就返回空和錯誤

if err != nil { return nil, err}

(3)指定掃描接收的引數

var username, password string

(4)掃描將匹配行中的列複製到目標指向的值中

err := row。Scan(&username, &password)

(4。1)(可選)如果查詢不到,將返回err錯誤資訊

if err != nil { return username, password, err}

(5)輸出查詢到的內容

username, password, nil

2、不透過使用User結構體的方法,透過使用函式自定義的id查詢對應的1條記錄

golang web從入門到精通 Mysql資料庫查詢單條、查詢所有,條件查詢

步驟分為:

(1)寫sql語句

sqlStr := “SELECT username,password FROM `users` WHERE `id` = ?”

(2)執行資料庫操作,需要區別上面的方法,這裡的id是來源於函式的引數

row := Db。QueryRow(sqlStr, id)

(3)指定掃描接收的引數

var username, password string

(4)掃描將匹配行中的列複製到目標指向的值中

err := row。Scan(&username, &password)

(4。1)(可選)如果查詢不到,將返回err錯誤資訊

if err != nil { return username, password, err}

(5)輸出查詢到的內容

username, password, nil

3、查詢所有記錄

golang web從入門到精通 Mysql資料庫查詢單條、查詢所有,條件查詢

步驟分為:

(1)寫sql語句

sqlStr := “SELECT username,password FROM `db1`。`users`”

(2)根據sql語句查詢所有的資料

rows, err := Db。Query(sqlStr)

(2。1)(可選)如果查詢不到,那麼就返回空和錯誤

if err != nil { return nil, err}

(3)定義user的map切片,用於接收username和password資訊

var users []map[string]string

(4)透過使用rows。Next獲取下一行的內容。

如果成功,則返回true

如果沒有下一個結果行,或者在準備結果行時出錯,則返回false。

每次呼叫Scan,甚至第一次呼叫,都必須在呼叫Next之前

for rows。Next() { 5到8步驟}

(5)指定掃描接收的引數

var username, password string

(6)掃描將匹配行中的列複製到目標指向的值中,目標中的值數必須與行中的列數相同。

_ = rows。Scan(&username, &password)

(7)將獲取到的username, password 寫到map

user := map[string]string{ “username”: username, “password”: password,}

(8)將輸出的map,增加到切片中

users = append(users, user)

(9)輸出查詢到的內容

return username, password, nil