隨著網路快速發展,大數據量的儲存和處理成為了不可避免的趨勢。而關係型資料庫MySQL作為一款開源且易用的資料庫系統,常用來儲存應用資料。本篇文章將介紹如何使用Go語言與MySQL進行交互,儲存和查詢資料。
環境建置
首先需要安裝Go語言和MySQL資料庫。可以使用以下指令安裝:
go get -u github.com/go-sql-driver/mysql
資料庫連線
在使用MySQL前需要確保已經安裝並啟動MySQL服務,可以使用下列指令進行連線:
db, err := sql.Open("mysql", "username:password@tcp(host:port)/dbname")
其中,username
和password
分別為資料庫的使用者名稱和密碼,host
和port
分別為MySQL伺服器的IP位址和連接埠號,dbname
為要連接的資料庫名稱。
資料庫操作
接下來就可進行資料庫的CRUD操作。以下為Go語言常用的MySQL操作指令:
(1)查詢資料
rows, err := db.Query("SELECT * FROM table_name") defer rows.Close() for rows.Next() { // 查询结果 }
(2)插入資料
stmt, err := db.Prepare("INSERT INTO table_name (col1, col2) VALUES (?, ?)") _, err = stmt.Exec(val1, val2)
(3)更新資料
stmt, err := db.Prepare("UPDATE table_name SET col1 = ? WHERE col2 = ?") _, err = stmt.Exec(val1, val2)
( 4)刪除資料
stmt, err := db.Prepare("DELETE FROM table_name WHERE col1 = ?") _, err = stmt.Exec(val)
完整範例
下面是一個完整的使用Go語言與MySQL進行互動的範例:
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "username:password@tcp(host:port)/dbname") if err != nil { fmt.Println(err.Error()) return } defer db.Close() // 查询数据 rows, err := db.Query("SELECT * FROM table_name") if err != nil { fmt.Println(err.Error()) return } defer rows.Close() for rows.Next() { var id int var name string if err := rows.Scan(&id, &name); err != nil { fmt.Println(err.Error()) return } fmt.Printf("id: %d, name: %s ", id, name) } // 插入数据 stmt, err := db.Prepare("INSERT INTO table_name (id, name) VALUES (?, ?)") if err != nil { fmt.Println(err.Error()) return } defer stmt.Close() _, err = stmt.Exec(1, "test") if err != nil { fmt.Println(err.Error()) return } // 更新数据 stmt, err = db.Prepare("UPDATE table_name SET name = ? WHERE id = ?") if err != nil { fmt.Println(err.Error()) return } defer stmt.Close() _, err = stmt.Exec("updated_test", 1) if err != nil { fmt.Println(err.Error()) return } // 删除数据 stmt, err = db.Prepare("DELETE FROM table_name WHERE id = ?") if err != nil { fmt.Println(err.Error()) return } defer stmt.Close() _, err = stmt.Exec(1) if err != nil { fmt.Println(err.Error()) return } }
以上是Go語言實戰:使用MySQL儲存數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!