如何在 Go 中创建 MySQL 数据库(表)并执行 CRUD 操作

我已从 github.com/go-sql-driver/mysql 导入驱动程序,并已成功建立与数据库的连接。我只是想开始创建一个表并能够从中更新、获取和删除数据 我见过的其他资源似乎跳过了这部分,或者只是不清楚(他们似乎开始获取数据,我喜欢..数据来自哪里,他们是如何创建的),我只想得到清晰的解释,谢谢。


// main.go

package main


import (

    "database/sql"

    "fmt"

    _ "github.com/go-sql-driver/mysql"

)


func main() {

    db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")

    if err != nil {

        panic(err)

    }

    defer db.Close()

}

2020 年 5 月 16 日更新:

事实证明,正如@mkopriva 在评论中指出的那样,我什至不知道数据库服务器必须首先运行(我想这是我挑战的最初来源......现在我'就像我什至想连接到的其他东西......duh......lol)

PS防火墙在我的情况下不是问题。


四季花海
浏览 129回答 1
1回答

紫衣仙女

您可以使用 、 和 提供的方法Exec将QuerySQLQueryRow命令*sql.DB发送到连接的数据库。func main() {    db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")    if err != nil {        panic(err)    } else if err = db.Ping(); err != nil {        panic(err)    }    defer db.Close()    _, err := db.Exec("CREATE TABLE IF NOT EXISTS mytable (id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, some_text TEXT NOT NULL)")    if err != nil {        panic(err)    }    // Create    res, err := db.Exec("INSERT INTO mytable (some_text) VALUES (?)", "hello world")    if err != nil {        panic(err)    }    // get the id of the newly inserted record    id, err := res.LastInsertId()    if err != nil {        panic(err)    }    // Read    var someText string    row := db.QueryRow("SELECT some_text FROM mytable WHERE id = ? LIMIT 1", id)    if err := row.Scan(&someText); err != nil {        panic(err)    }    fmt.Println(someText)    // Update    _, err = db.Exec("UPDATE mytable SET some_text = ? WHERE id = ?", "Hello, 世界", id)    if err != nil {        panic(err)    }    // Delete    _, err = db.Exec("DELETE FROM mytable WHERE id = ?", id)    if err != nil {        panic(err)    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go