Golang-使用mysql


一、安裝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語言的官方文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM