Go語言是一門現代化高效的編程語言,它與MySQL數據庫的連接簡單而優雅。支持三方庫go-sql-driver/mysql,支持Database/sql模塊,就可以做到輕松地連接到MySQL。
import ( "database/sql" "fmt" // mysql驅動 _ "github.com/go-sql-driver/mysql" ) func main() { // 打開數據庫連接 db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/test") // 判斷錯誤 if err != nil { fmt.Println("mysql connect error: ", err) return } // 延遲關閉數據庫連接 defer db.Close() // 測試連接 err = db.Ping() if err != nil { fmt.Println("mysql ping error: ", err) return } fmt.Println("mysql connect success.") }
在上面的代碼中,我們首先導入了database/sql和github.com/go-sql-driver/mysql兩個包,前者提供了數據庫操作接口,后者則提供了MySQL驅動。接著,我們使用sql.Open函數打開了一個MySQL數據庫連接,并指定了待連接的數據庫名、用戶以及密碼。在成功打開連接之后,我們需要延遲關閉連接,并使用db.Ping來測試是否能成功連接到數據庫。
在實際開發中,我們通常需要構建一個數據庫操作模塊,提供諸如查詢、插入、修改等操作。下面以查詢為例,給出一個MySQL查詢的代碼片段。
// 用戶對象 type User struct { Id int `db:"id"` Name string `db:"name"` } // 查詢所有用戶 func findAllUsers() ([]User, error) { // 打開數據庫連接 db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/test") if err != nil { return nil, err } // 延遲關閉連接 defer db.Close() // 查詢所有用戶 users := make([]User, 0) rows, err := db.Query("SELECT * FROM user") if err != nil { return nil, err } // 迭代每一行 for rows.Next() { var user User err := rows.Scan(&user.Id, &user.Name) if err != nil { return nil, err } users = append(users, user) } return users, nil }
上面的代碼中,我們首先定義了一個用戶對象類型和一個查詢所有用戶的函數。在函數中,我們通過Query函數執行了一條查詢語句,并使用Next方法逐行遍歷查詢結果。使用Scan方法將數據庫中的數據映射到User結構體中,并將User加入到切片中,最終返回所有的用戶。這里需要注意的是,每次遍歷需要初始化一個新的User對象。
通過上面的例子,相信大家已經明白了如何使用Go語言連接MySQL這一操作。在實際開發中,需要根據具體需求,結合Go語言的特性和MySQL的優點,設計高效、安全的數據庫操作模塊。
下一篇mysql 9999