Go語言是一種十分強大的編程語言,也有著許多優秀的數據庫操作工具。其中,操作MySQL數據庫是Go語言中非常重要的一項工作,而且在實際應用中也經常被使用到。
在Go語言中操作MySQL數據庫,通常需要使用第三方庫。比如,現在我們來看一看如何使用Go語言中的“go-sql-driver/mysql”庫進行MySQL數據庫操作。
安裝“go-sql-driver/mysql”庫
$ go get -u github.com/go-sql-driver/mysql
連接到MySQL數據庫
import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "user:password@/dbname") if err != nil { panic(err.Error()) } defer db.Close() }
在以上代碼中,我們首先引入了“database/sql”和“github.com/go-sql-driver/mysql”兩個包,然后通過sql.Open()方法連接到MySQL數據庫,并捕獲任何可能的錯誤。最后,通過“defer”語句關閉數據庫連接。
查詢數據
rows, err := db.Query("SELECT id, name, age FROM users") if err != nil { panic(err.Error()) } defer rows.Close() for rows.Next() { var id int var name string var age int err := rows.Scan(&id, &name, &age) if err != nil { panic(err.Error()) } }
在以上代碼中,我們通過db.Query()方法進行數據查詢,并通過for循環遍歷查詢結果。在循環體內,通過rows.Scan()方法獲取MySQL數據庫中讀取的數據。
插入數據
stmt, err := db.Prepare("INSERT INTO users(name, age) VALUES(?, ?)") if err != nil { panic(err.Error()) } defer stmt.Close() res, err := stmt.Exec("Jerry", 20) if err != nil { panic(err.Error()) } id, err := res.LastInsertId() if err != nil { panic(err.Error()) }
在以上代碼中,我們首先使用db.Prepare()方法構造一個SQL語句,然后使用stmt.Exec()方法插入數據到MySQL數據庫中,“defer”語句用于關閉數據庫句柄。最后,使用res.LastInsertId()方法獲取插入數據的自增ID。
更新數據
stmt, err := db.Prepare("UPDATE users SET name=?, age=? WHERE id=?") if err != nil { panic(err.Error()) } defer stmt.Close() res, err := stmt.Exec("Jerry2", 21, 1) if err != nil { panic(err.Error()) } affected, err := res.RowsAffected() if err != nil { panic(err.Error()) }
在以上代碼中,我們使用db.Prepare()方法構造一個SQL語句,然后使用stmt.Exec()方法更新MySQL數據庫中的數據,“defer”語句用于關閉數據庫句柄。最后,我們使用res.RowsAffected()方法獲取更新數據的行數。
以上就是使用Go語言操作MySQL數據庫的一些基本操作方法,通過學習這些方法可以更好地掌握Go語言中操作MySQL數據庫的技能。