为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
四季花海 2022-06-01 18:09:48
我已从 github.com/go-sql-driver/mysql 导入驱动程序,并已成功建立与数据库的连接。我只是想开始创建一个表并能够从中更新、获取和删除数据 我见过的其他资源似乎跳过了这部分,或者只是不清楚(他们似乎开始获取数据,我喜欢..数据来自哪里,他们是如何创建的),我只想得到清晰的解释,谢谢。// main.gopackage mainimport (    "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防火墙在我的情况下不是问题。
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

您可以使用 、 和 提供的方法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)

    }

}


查看完整回答
反对 回复 2022-06-01
  • 1 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信