Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan Pelayan SQL dalam Go: Panduan Lengkap

Menggunakan Pelayan SQL dalam Go: Panduan Lengkap

王林
王林asal
2023-06-18 09:18:002962semak imbas

Dengan penggunaan meluas aplikasi peringkat perusahaan, SQL Server juga telah menjadi salah satu pangkalan data yang paling banyak digunakan dalam aplikasi peringkat perusahaan. Selain itu, dengan populariti bahasa Go, semakin ramai pembangun berharap untuk menggunakan SQL Server dalam bahasa Go. Dalam artikel ini, kami akan memperkenalkan cara menggunakan SQL Server dalam bahasa Go, yang melibatkan panduan lengkap untuk menyambung, bertanya, membaca dan menulis data, dsb.

Sambung ke pangkalan data SQL Server

Untuk menyambung ke pangkalan data SQL Server, kita perlu menggunakan pemacu SQL Server yang disediakan oleh Microsoft (iaitu mssql). Pemacu ini sangat mudah digunakan, jadi mari kita pasang.

Pasang Pemacu Pelayan SQL

Untuk memasang pemacu mssql, kita perlu menjalankan arahan berikut dalam terminal:

go get github.com/denisenkom/go-mssqldb

Arahan ini akan memuat turun dan memasang pemacu mssql.

Sambung ke pangkalan data

Setelah pemacu dipasang, kami boleh menyambung ke pangkalan data SQL Server. Sambungan memerlukan kami memberikan alamat pelayan pangkalan data, nama pangkalan data, nama pengguna dan kata laluan. Berikut ialah contoh asas sambungan:

package main

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

func main() {
    server := "localhost\SQLEXPRESS"
    port := 1433
    user := "sa"
    password := "password123"
    database := "MyDatabase"

    connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s;",
        server, user, password, port, database)
    db, err := sql.Open("mssql", connString)

    if err != nil {
        panic(err)
    }

    defer db.Close()

    // Connection successful. We can now start working with the database.
    fmt.Println("Connection successful.")
}

Dalam contoh ini, kami menentukan alamat pelayan pangkalan data sebagai "localhostSQLEXPRESS", port sebagai 1433, nama pengguna sebagai sa, kata laluan sebagai kata laluan123, dan nama data sebagai MyDatabase. Rentetan sambungan diformatkan dalam format "Rentetan sambungan contoh saya". Kami menggunakan rentetan ini untuk membuka sambungan dan memberikan mesej ringkas sebagai pengesahan selepas sambungan berjaya.

Mencari data

Setelah sambungan berjaya, kita boleh mula menggunakan arahan SQL untuk menanyakan data daripada pangkalan data. Kita boleh menggunakan db.Query() untuk melaksanakan pernyataan pertanyaan dan rows.Scan() untuk mengimbas setiap baris data dalam hasil pertanyaan. Berikut ialah contoh pertanyaan asas:

func main() {
    server := "localhost\SQLEXPRESS"
    port := 1433
    user := "sa"
    password := "password123"
    database := "MyDatabase"

    connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s;",
        server, user, password, port, database)

    db, err := sql.Open("mssql", connString)
    if err != nil {
        panic(err)
    }

    defer db.Close()

    // Query the database.
    query := "SELECT Name, Email FROM Customers WHERE Country = 'USA'"
    rows, err := db.Query(query)

    if err != nil {
        panic(err)
    }

    defer rows.Close()

    // Scan the results.
    for rows.Next() {
        var name string
        var email string
        err = rows.Scan(&name, &email)

        if err != nil {
            panic(err)
        }

        fmt.Println(name, email)
    }
}

Dalam contoh ini, kami menanyakan jadual bernama "Pelanggan", yang terletak dalam pangkalan data MyDatabase. Kami hanya memilih baris dengan lajur bernama "Nama" dan "E-mel" di mana "Negara" disenaraikan sebagai "AS".

Apabila kami melaksanakan pertanyaan, keputusan akan disimpan dalam pembolehubah pertanyaan. Kami kemudian menggunakan db.Query() untuk melaksanakan pertanyaan. Ia mengembalikan set hasil, yang kami imbas menggunakan rows.Scan(). Akhir sekali, kami mengulangi hasil yang dikembalikan dan mencetak data untuk setiap baris.

Menulis data

Apabila menggunakan SQL Server dalam bahasa Go, menulis data baharu sangat serupa dengan membaca data. Untuk menulis data, kami hanya laksanakan pernyataan INSERT, UPDATE atau DELETE menggunakan db.Exec(). Berikut ialah contoh penulisan asas:

func main() {
    server := "localhost\SQLEXPRESS"
    port := 1433
    user := "sa"
    password := "password123"
    database := "MyDatabase"

    connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s;",
        server, user, password, port, database)

    db, err := sql.Open("mssql", connString)
    if err != nil {
        panic(err)
    }

    defer db.Close()

    // Insert a new row.
    statement := "INSERT INTO Customers (Name, Email, Country) VALUES (?, ?, ?)"
    result, err := db.Exec(statement, "John Doe", "johndoe@example.com", "USA")

    if err != nil {
        panic(err)
    }

    rowsAffected, err := result.RowsAffected()
    if err != nil {
        panic(err)
    }

    // Write successful. Display the number of rows affected.
    fmt.Printf("%d rows affected.
", rowsAffected)
}

Dalam contoh ini, kami melaksanakan pernyataan INSERT untuk memasukkan baris data ke dalam jadual bernama "Pelanggan". Kami menyatakan nama "John Doe", alamat e-mel "johndoe@example.com", dan negara "USA". Kami menggunakan db.Exec() untuk menulis data dan fmt.Printf() untuk mencetak keputusan.

Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan SQL Server dalam bahasa Go. Kami belajar cara menyambung ke pangkalan data, melaksanakan pertanyaan dan menulis data. Kami juga telah melihat bahawa proses menggunakan SQL Server dengan bahasa Go adalah sangat mudah, SQL Server telah menjadi salah satu penyelesaian penyimpanan data pilihan untuk aplikasi peringkat perusahaan. Jika anda seorang pembangun Go dan anda ingin menggunakan SQL Server dalam projek anda yang seterusnya, artikel ini akan memberikan anda panduan yang sangat berguna.

Atas ialah kandungan terperinci Menggunakan Pelayan SQL dalam Go: Panduan Lengkap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn