GO學習第四天——連接mysql數據庫

    其實這一篇是跟上一篇在同一天寫的,上一篇是補上以前落下的。這篇就是今天應該寫的。 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

相關文章
相關標籤/搜索