Go 与 SqlServer 数据库 - CRUD 教程

本教程将向您介绍如何使用 Go 编程语言对 SqlServer 数据库执行 CRUD 操作(创建、读取、更新、删除)。

发布于

本教程将向您介绍如何使用 Go 编程语言对 SqlServer 数据库执行 CRUD 操作(创建、读取、更新、删除)。我们将从介绍数据库和编程语言开始,然后逐步指导您完成连接和操作 SqlServer 数据库的步骤。最后,我们将提供一个简单的示例,以便您更好地理解如何应用这些概念。

先决条件

为了连接 SqlServer 数据库,需要具备以下先决条件:

  1. 安装 Go 语言:确保您已成功安装 Go 编程语言。您可以从官方网站(https://golang.org)下载并安装Go。

  2. SqlServer 数据库服务器:您需要在本地或远程服务器上安装 SqlServer 数据库。SqlServer 是一种强大的关系型数据库管理系统,您可以从 SqlServer 官方网站或 Microsoft 下载 SqlServer 安装程序。

  3. Go 的 SqlServer 驱动程序:您需要安装 Go 的 SqlServer 驱动程序,您可以使用go get命令来安装,例如:

    go get github.com/denisenkom/go-mssqldb
    
  4. SqlServer 数据库凭据:确保您知道要连接的 SqlServer 数据库的地址、端口、用户名和密码。

连接 SqlServer 数据库

在开始执行 CRUD 操作之前,我们需要建立与 SqlServer 数据库的连接。以下是连接到 SqlServer 数据库的步骤:

步骤 1:导入必要的包

首先,在 Go 代码中导入所需的包,包括 SqlServer 驱动程序和其他必要的库。

import (
    "database/sql"
    "fmt"
    _ "github.com/denisenkom/go-mssqldb"
)

步骤 2:创建数据库连接

使用以下代码创建一个与 SqlServer 数据库的连接:

server := "server_name"
port := 1433
user := "username"
password := "password"
database := "database_name"
connectionString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s", server, user, password, port, database)

db, err := sql.Open("sqlserver", connectionString)
if err != nil {
    panic(err.Error())
}
defer db.Close()

确保将server_nameusernamepasswordportdatabase_name替换为您的 SqlServer 数据库的信息。

执行 CRUD 操作

现在,我们已经建立了与 SqlServer 数据库的连接,让我们继续执行 CRUD 操作。

创建记录

要创建新的记录,使用以下代码:

_, err := db.Exec("INSERT INTO user (username, email) VALUES (?, ?)", "john_doe", "[email protected]")
if err != nil {
    panic(err.Error())
}

读取记录

要读取记录,使用以下代码:

rows, err := db.Query("SELECT username, email FROM user")
if err != nil {
    panic(err.Error())
}
defer rows.Close()

for rows.Next() {
    var username string
    var email string
    err := rows.Scan(&username, &email)
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("Username: %s, Email: %s\n", username, email)
}

更新记录

要更新记录,使用以下代码:

_, err := db.Exec("UPDATE user SET email = ? WHERE username = ?", "[email protected]", "john_doe")
if err != nil {
    panic(err.Error())
}

删除记录

要删除记录,使用以下代码:

_, err := db.Exec("DELETE FROM user WHERE username = ?", "john_doe")
if err != nil {
    panic(err.Error())
}

简单示例

以下是一个简单的示例,演示如何创建、读取、更新和删除用户记录:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/denisenkom/go-mssqldb"
)

func main() {
    server := "server_name"
    port := 1433
    user := "username"
    password := "password"
    database := "database_name"
    connectionString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s", server, user, password, port, database)

    db, err := sql.Open("sqlserver", connectionString)
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    // 创建记录
    _, err = db.Exec("INSERT INTO user (username, email) VALUES (?, ?)", "john_doe", "[email protected]")
    if err != nil {
        panic(err.Error())
    }

    // 读取记录
    rows, err := db.Query("SELECT username, email FROM user")
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()

    for rows.Next() {
        var username string
        var email string
        err := rows.Scan(&username, &email)
        if err != nil {
            panic(err.Error())
        }
        fmt.Printf("Username: %s, Email: %s\n", username, email)
    }

    // 更新记录
    _, err = db.Exec("UPDATE user SET email = ? WHERE username = ?", "[email protected]", "john_doe")
    if err is not nil {
        panic(err.Error())
    }

    // 删除记录
    _, err = db.Exec("DELETE FROM user WHERE username = ?", "john_doe")
    if err != nil {
        panic(err.Error())
    }
}

总结

通过本教程,您已经学会了如何使用 Go 编程语言连接 SqlServer 数据库并执行 CRUD 操作。这些基本的数据库操作是构建更复杂应用程序的基础,希望本文能够帮助您在 Go 中使用 SqlServer 数据库时更加自信和熟练。