golang 连接mysql
时间: 2023-09-02 21:14:03 浏览: 190
GO连接mysql
在 golang 中连接 MySQL 数据库需要使用第三方库,比如 `go-sql-driver/mysql`。以下是连接 MySQL 数据库的示例代码:
```go
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 数据库连接信息
user := "root"
password := "password"
host := "localhost"
port := "3306"
dbname := "test"
// 创建数据库连接
db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", user, password, host, port, dbname))
if err != nil {
panic(err.Error())
}
defer db.Close()
// 测试连接是否成功
err = db.Ping()
if err != nil {
panic(err.Error())
}
fmt.Println("Connected to MySQL database!")
}
```
上述代码中,`sql.Open` 函数用于创建一个数据库连接,参数一是驱动名称,参数二是连接字符串。连接字符串中需要包含用户名、密码、主机名、端口号和数据库名等信息。`db.Ping()` 函数用于测试连接是否成功。
连接成功后,可以使用 `db.Query` 或 `db.Exec` 函数执行 SQL 语句。例如:
```go
// 查询数据
rows, err := db.Query("SELECT * 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())
}
fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age)
}
// 插入数据
result, err := db.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "Tom", 18)
if err != nil {
panic(err.Error())
}
id, err := result.LastInsertId()
if err != nil {
panic(err.Error())
}
fmt.Println("Last inserted ID:", id)
```
阅读全文