下面是详细讲解如何在Ubuntu系统上使用SQL Server创建Go应用程序的完整攻略,步骤如下:
在 Ubuntu 上安装 SQL Server,可以通过 Microsoft 的官方文档进行安装操作:
安装完成后,我们可以通过以下命令来验证 SQL Server 是否已安装成功:
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewPassword>"
如果出现如下提示,表示 SQL Server 已经成功运行:
1>
接下来,我们需要安装 Go 语言的 SQL Server 驱动程序 msodbcsql:
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql17
我们现在可以使用 SQL Server Management Studio 或命令行工具在 SQL Server 中创建一个示例表,如下所示:
CREATE TABLE Person (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
我们需要创建一个Go mod项目以便导入SQL Server包,并且设置以来:
mkdir go_sqlserver_demo
cd go_sqlserver_demo
go mod init go_sqlserver_demo
现在我们可以通过以下命令来下载并安装 SQL Server 驱动:
go get github.com/denisenkom/go-mssqldb
并且我们可以创建一个 main.go
文件,编写一个简单的查询示例代码,如下所示:
package main
import (
"context"
"database/sql"
"fmt"
"log"
"github.com/denisenkom/go-mssqldb"
)
var db *sql.DB
func main() {
server := "<localhost>"
port := 1433
user := "<sa>"
password := "<password>"
database := "<database name>"
connectionString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s;",
server, user, password, port, database)
var err error
db, err = sql.Open("sqlserver", connectionString)
if err != nil {
log.Fatal("Error creating connection pool: ", err.Error())
}
defer db.Close()
ctx := context.Background()
err = db.PingContext(ctx)
if err != nil {
log.Fatal("Error pinging database: ", err.Error())
}
var (
PersonID int
LastName string
FirstName string
Address string
City string
)
rows, err := db.QueryContext(ctx, "SELECT PersonID, LastName, FirstName, Address, City FROM Person")
if err != nil {
log.Fatal("Error reading rows: ", err.Error())
}
defer rows.Close()
for rows.Next() {
err := rows.Scan(&PersonID, &LastName, &FirstName, &Address, &City)
if err != nil {
log.Fatal("Error scanning row: ", err.Error())
}
fmt.Printf("PersonID: %d, LastName: %s, FirstName: %s, Address: %s, City: %s\n", PersonID, LastName, FirstName, Address, City)
}
}
上述代码中,我们首先建立了连接字符串,然后使用 go-mssqldb
包来连接 SQL Server,并查询示例表中的数据。最后,将结果输出到控制台。
我们可以使用以下命令来运行示例程序:
go run main.go
执行上述命令,即可看到输出示例表数据的结果。
假设我们需要从一个名为Product
的SQL Server表中,将表中所有产品不重复地输出添加到控制台:
我们可以像这样编写查询SQL命令:
SELECT DISTINCT ProductName FROM Product;
在Go程序中,需要查询该数据,我们可以将查询语句修改如下:
rows, err := db.QueryContext(ctx, "SELECT DISTINCT ProductName FROM Product;")
这样我们就可以输出所有不重复的ProductName
数据了。
假设我们需要将一个名为Person
的SQL Server表中所有LastName
为Doe
的数据添加到控制台。
我们可以像这样编写查询SQL语句:
SELECT * FROM Person WHERE LastName='Doe';
在Go程序中,需要查询该数据,我们可以将查询语句修改如下:
rows, err := db.QueryContext(ctx, "SELECT * FROM Person WHERE LastName='Doe';")
这样我们就可以输出所有LastName
为Doe
的数据了。
以上是在 Ubuntu 使用 SQL Server 创建 Go 应用程序的完整攻略,希望对你有所帮助。
本文链接:http://task.lmcjl.com/news/13981.html