這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
以mysql為例,go沒有實現串連資料庫的驅動,只是提供了介面,供第三方實現
首先安裝第三方包
cmd執行 go get 命令
在執行go get 命令之前,確保你的電腦配置了環境變數GOPATH,並且安裝了git
執行:
go get github.com/go-sql-driver/mysql
接下來就會自動安裝了,安裝成功之後,就可以使用了
package mainimport ( _"github.com/go-sql-driver/mysql" "database/sql" "fmt")type Users struct{ username string pwd string}func main() { db,err := sql.Open("mysql","yld:1226@tcp(127.0.0.1:3306)/operation") if err != nil { fmt.Println(err) return } var users []Users = make([]Users,0) rows,err := db.Query("select username,pwd from user") defer rows.Close() if err != nil { fmt.Println(err) return } for rows.Next() { var u Users rows.Scan(&u.username,&u.pwd) users = append(users,u) } fmt.Println(users)}
自己又看了下row.Scan()這個方法,官方是這麼解釋的
將當前行中的列複製到dest指向的值,dest中的值的數量必須與Rows中的列數相同,Scan將從資料庫讀出來的列的實值型別轉換為以下常見的go類型和sql包提供的特殊類型以及任何實現了Scanner的類型
// *string// *[]byte// *int, *int8, *int16, *int32, *int64// *uint, *uint8, *uint16, *uint32, *uint64// *bool// *float32, *float64// *interface{}// *RawBytes
在最簡單的情況下,如果源列中的值的類型是整數,bool或字串類型,則Scan只需通過指標分配值