一、安裝mysql-driver驅動
go get github.com/go-sql-driver/mysql
二、安裝完畢之后,就可以通過go語言操作mysql了
const (
_selectUser = "select name,age from user where id = ?"
_updateUser = "update user set name = ? where name = ?"
_insertUser = "insert user (name,age) values (?,?)"
_deleteUser = "delete user where id = ?"
)
func main () {
var (
err error
)
// 得到一個db對象
// Open方法第二個參數: 用戶名:密碼@協議(ip:端口)/數據庫
db,err := sql.Open("mysql","root:root@tcp(127.0.0.1:3306)/day0731")
if err != nil {
fmt.Println(err)
return
}
defer db.Close()
// 這里我們拿到了db這個對象,就可以對day0731這個mysql數據庫進行操作了
// 查詢操作
// Query方法,返回值具體類型自己看
var (
name string
age int
)
resultRows,err := db.Query(_selectUser,1)
// 這里的name,age必須和sql語句順序一致,也不能多傳,也不能少傳
err = resultRows.Scan(&name,&age)
if err != nil {
fmt.Println(err)
retrun
}
fmt.Println(name)
fmt.Println(age)
// QueryRow方法,查詢的效果和上面一致
err = db.QueryRow(_selectUser,1).Scan(&name,&age)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(name)
fmt.Println(age)
// 插入、更新、刪除操作
// Exec方法,執行一段sql語句
result,err := db.Exec(_updateUser,"朱春雨","朱宇")
if err != nil {
fmt.Println(err)
return
}
// result這個對象,他有兩個方法,RowsAffected(),LastInsertId(),
// 分別返回影響的行數,還有就是最后插入的id
// 我們這里執行的是更新語句,就看這個方法就好了RowsAffected
rowCount,err := result.RowsAffected()
if err != nil {
fmt.Println(err)
return
}
if rowCount == 0 {
fmt.Println("更新操作失敗")
return
}
fmt.Println("更新操作成功!")
}
三、對mysql的增刪查改用Query,Exec方法就ok了,具體其他的方法參考go語言的官方文檔