Rumah  >  Artikel  >  pembangunan bahagian belakang  >  golang mendapat hasil pertanyaan

golang mendapat hasil pertanyaan

WBOY
WBOYasal
2023-05-13 09:34:071040semak imbas

Untuk mendapatkan hasil pertanyaan, Golang menyediakan kaedah dan alatan yang berbeza. Dalam artikel ini, kami akan meneroka kaedah dan teknik untuk mendapatkan hasil pertanyaan.

  1. Menggunakan pemacu pangkalan data

Menggunakan pemacu pangkalan data ialah cara biasa untuk mendapatkan hasil pertanyaan. Golang menyokong pelbagai pemacu pangkalan data, termasuk MySQL, PostgreSQL dan SQLite. Sebelum menggunakan pemacu pangkalan data, anda perlu memasang perpustakaan yang sepadan. Sebagai contoh, untuk menggunakan pemacu MySQL, anda perlu menjalankan arahan berikut:

go get -u github.com/go-sql-driver/mysql

Ini akan memuat turun dan memasang pemacu MySQL.

Seterusnya, anda perlu menggunakan pangkalan data/pakej sql untuk melaksanakan pertanyaan dan mendapatkan hasilnya. Di bawah ialah contoh program yang menggunakan pemacu MySQL untuk menyambung ke pangkalan data MySQL dan melaksanakan pertanyaan SELECT mudah:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "user:password@tcp(hostname:port)/database")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

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

    var id int
    var name string
    for rows.Next() {
        err = rows.Scan(&id, &name)
        if err != nil {
            panic(err.Error())
        }
        fmt.Println(id, name)
    }
}

Dalam program di atas, kami menggunakan kaedah sql.Open() untuk menyambung ke pangkalan data MySQL. Dalam rentetan sambungan, kami menentukan nama hos, port dan nama pangkalan data pelayan pangkalan data. Kemudian, kami menggunakan kaedah db.Query() untuk melaksanakan pertanyaan SELECT dan data baris dalam set hasil pertanyaan. Untuk setiap baris, kami menggunakan kaedah rows.Scan() untuk membaca data lajur dalam baris.

  1. Menggunakan rangka kerja ORM

Rangka kerja ORM (Pemetaan Perkaitan Objek) ialah satu lagi cara popular untuk mendapatkan hasil pertanyaan di Golang. Rangka kerja ORM membolehkan anda memetakan jadual pangkalan data ke dalam struktur dan medan di Golang dan menyediakan pelbagai kaedah untuk melaksanakan pertanyaan dan memanipulasi pangkalan data. Beberapa rangka kerja ORM yang popular di Golang termasuk GORM, XORM, Beego ORM, dsb.

Berikut ialah contoh program yang menggunakan rangka kerja GORM untuk mendapatkan hasil pertanyaan:

package main

import (
    "fmt"
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
)

type User struct {
    ID   uint
    Name string
}

func main() {
    dsn := "user:password@tcp(hostname:port)/database"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    var users []User
    db.Find(&users)

    for _, user := range users {
        fmt.Println(user.ID, user.Name)
    }
}

Dalam program di atas, kami menggunakan GORM untuk memetakan jadual Pengguna kepada struktur Pengguna di Golang. Kami kemudian laksanakan pertanyaan SELECT menggunakan kaedah db.Find() dan simpan hasil pertanyaan ke dalam kepingan. Akhir sekali, kami mengulangi hirisan untuk mencetak ID dan nama setiap pengguna.

  1. Menggunakan klien HTTP

Jika anda perlu mendapatkan hasil pertanyaan daripada perkhidmatan web, anda boleh menggunakan klien HTTP terbina dalam Golang. Pelanggan HTTP membenarkan anda menghantar permintaan kepada perkhidmatan web dengan antara muka HTTP dan mendapatkan hasil daripada respons.

Berikut ialah contoh program yang menggunakan klien HTTP untuk mendapatkan hasil pertanyaan:

package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

type User struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
}

func main() {
    url := "https://example.com/users"
    resp, err := http.Get(url)
    if err != nil {
        panic(err.Error())
    }
    defer resp.Body.Close()

    var users []User
    err = json.NewDecoder(resp.Body).Decode(&users)
    if err != nil {
        panic(err.Error())
    }

    for _, user := range users {
        fmt.Println(user.ID, user.Name)
    }
}

Dalam atur cara di atas, kami menggunakan kaedah http.Get() untuk meminta senarai pengguna daripada Perkhidmatan web. Kami kemudiannya menyahkod respons berformat JSON menggunakan kaedah json.NewDecoder() dan memetakannya ke dalam kepingan Pengguna. Akhir sekali, kami mengulangi hirisan untuk mencetak ID dan nama setiap pengguna.

Ringkasan

Di atas ialah tiga cara biasa untuk mendapatkan hasil pertanyaan dalam Golang: menggunakan pemacu pangkalan data, menggunakan rangka kerja ORM dan menggunakan klien HTTP. Petua ini boleh membantu anda menulis kod yang cekap dan fleksibel untuk memproses dan mendapatkan hasil pertanyaan dengan lebih baik. Sama ada anda mendapat hasil pertanyaan daripada pangkalan data hubungan atau daripada perkhidmatan Web, petua ini boleh membantu anda mendapatkan hasil dan memprosesnya dengan mudah.

Atas ialah kandungan terperinci golang mendapat hasil pertanyaan. 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
Artikel sebelumnya:Apa yang golang tanya?Artikel seterusnya:Apa yang golang tanya?