golang 簡介
Go(又稱Golang)是Google開發的一種靜態強型別、編譯型、併發型,並具有垃圾回收功能的程式語言。
golang發展前景
適合雲計算、微服務、基礎後端軟體的功能實現。
go語言優點
go是非常年輕的一門語言,“兼具Python 等動態語言的開發速度和C/C++等編譯型語言的效能與安全性”,具備強大的標準庫,內建垃圾回收機制,屬於靜態型別語言,因此具備編譯檢查和編碼規範,特別是併發功能實現簡單,但功能強大,可使用goroutine和channel輕鬆實現高併發。
golang web 優勢
語法簡單:語法簡潔,新手入門簡單,開發應用效能高。
便於維護:強型別靜態語言,便於專案的重構和維護。
部署方便:編譯的可執行二進位制檔案,在執行時,不需要部署環境,把編譯檔案上傳,就完成了專案的部署。
Mysql資料庫的查詢單條、查詢所有,條件查詢
先貼程式碼,然後解釋
程式碼中,演示了3個查詢
1、透過使用User結構體的方法實現透過User。id查詢對應的1條記錄
步驟分為:
(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條記錄
步驟分為:
(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、查詢所有記錄
步驟分為:
(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