其实这一篇是跟上一篇在同一天写的,上一篇是补上之前落下的。这篇就是今天应该写的。
这里写的是mysql。首先下载一个go才做mysql的第三方驱动包。我使用的是https://github.com/go-sql-driver/mysql,当然也可以用其他的。第一篇有提过配置GOPATH作为第三方包的安装路径吧。我的是/home/leaf/.mygo。运行
go get github.com/go-sql-driver/mysql 之后把这个驱动包下载到/home/leaf/.mygo下。
使用其实非常简单。如下打开数据库
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包里面。
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)
}
}
未完,待续