其實這一篇是跟上一篇在同一天寫的,上一篇是補上以前落下的。這篇就是今天應該寫的。 mysql
這裏寫的是mysql。首先下載一個go才作mysql的第三方驅動包。我使用的是https://github.com/go-sql-driver/mysql,固然也能夠用其餘的。第一篇有提過配置GOPATH做爲第三方包的安裝路徑吧。個人是/home/leaf/.mygo。運行 git
go get github.com/go-sql-driver/mysql
以後把這個驅動包下載到/home/leaf/.mygo下。
使用其實很是簡單。以下打開數據庫 github
import "database/sql" import _ "github.com/go-sql-driver/mysql" db, err := sql.Open("mysql", "user:password@/dbname")增刪查改操做能夠查看 https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/05.2.md。
我在這裏就貼一下我本身寫的代碼。首先我把打開數據庫操做封裝了在一個database包裏面。 golang
package database import ( _ "github.com/go-sql-driver/mysql" "database/sql" ) const dbname string = "root" const dbpwd string = "root" func GetInstance() *sql.DB{ db, err := sql.Open("mysql", dbname+":"+dbpwd+"@/OA") if err != nil { return nil } return db }下面是我調用數據庫查找的代碼
func checkUser(username string, password string) bool { db := database.GetInstance() rows, err := db.Query("SELECT uid FROM user where username=? and password=?",username,password) utils.CheckErr(err) var uid int var isLogined = false if rows.Next() { err = rows.Scan(&uid) utils.CheckErr(err) isLogined = true } defer db.Close() return isLogined }這個方法是用來檢測用戶輸入的賬號密碼是否正確,在註冊方法裏面調用它,若是正確就調用http.Redirect(w, r, "/tasks", http.StatusFound)從定向到localhost:9090/tasts(這個固然要先在main中註冊好啦)。utils.CheckErr(err)是我一個封裝的方法
package utils func CheckErr(err error) { if err != nil { panic(err) } }
未完,待續 web