Rumah  >  Artikel  >  pangkalan data  >  Cara menggunakan bahasa Go untuk menanya dan mengisih data dalam pangkalan data MySQL

Cara menggunakan bahasa Go untuk menanya dan mengisih data dalam pangkalan data MySQL

WBOY
WBOYasal
2023-06-17 16:26:411415semak imbas

Dengan perkembangan teknologi digital yang berterusan, sejumlah besar data yang digunakan dalam kehidupan kita terus terkumpul. Untuk menggunakan data ini dengan lebih cekap, kita perlu menggunakan pangkalan data untuk penyimpanan data, pertanyaan dan pemprosesan dalam pembangunan sistem. Antaranya, MySQL, sebagai sistem pengurusan pangkalan data hubungan yang biasa digunakan, digunakan secara meluas dalam pelbagai senario aplikasi.

Apabila jumlah data meningkat, cara mengisih pangkalan data MySQL telah menjadi isu yang sangat penting. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk menanya dan mengisih data dalam pangkalan data MySQL, supaya anda boleh memproses data besar-besaran dengan lebih mudah.

1. Bahasa Go untuk menyambung ke pangkalan data MySQL

Sebelum kita boleh membuat pertanyaan dan mengisih pangkalan data MySQL, kita perlu menggunakan bahasa Go untuk menyambung ke pangkalan data MySQL. Di sini kami menggunakan pakej pangkalan data/sql Go untuk melaksanakan sambungan dan operasi pangkalan data. Langkah-langkah khusus adalah seperti berikut:

  1. Memperkenalkan pakej yang diperlukan
import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)

Memperkenalkan pakej pangkalan data/sql Go dan pakej pemacu MySQL github.com/go-sql ke dalam kod -driver/mysql, kedua-dua pakej ini sangat penting dalam menyambung ke pangkalan data MySQL.

  1. Sambung ke pangkalan data MySQL
func ConnectDB() (db *sql.DB, err error) {
    dsn := "user:password@tcp(127.0.0.1:3306)/database_name?charset=utf8mb4"
    db, err = sql.Open("mysql", dsn)
    if err != nil {
        return nil, err
    }
    err = db.Ping()
    if err != nil {
        return nil, err
    }
    return db, nil
}

Dalam fungsi ConnectDB, kami menggunakan kaedah sql.Open() untuk mencipta pemegang kepada pangkalan data SQL dan memanggil kaedah Ping . Tentukan sama ada sambungan berjaya diwujudkan.

  1. Tutup sambungan
func CloseDB(db *sql.DB) {
    err := db.Close()
    if err != nil {
        log.Printf("close db error:%v
", err)
    }
}

Selepas menyelesaikan operasi data, kami harus menutup sambungan pangkalan data tepat pada masanya untuk mengeluarkan sumber.

2. Pengisihan pertanyaan data

  1. Soal semua data

Selepas menggunakan bahasa Go untuk menyambung ke pangkalan data MySQL, kami boleh memulakan operasi pertanyaan data . Berikut ialah contoh kod untuk menanyakan semua data:

func QueryAllUsers(db *sql.DB) ([]*User, error) {
    users := make([]*User, 0)
    rows, err := db.Query("SELECT * FROM users ORDER BY age DESC")
    if err != nil {
        return nil, err
    }
    defer rows.Close()
    for rows.Next() {
        user := new(User)
        err := rows.Scan(&user.Id, &user.Name, &user.Age, &user.Address)
        if err != nil {
            return nil, err
        }
        users = append(users, user)
    }
    if err := rows.Err(); err != nil {
        return nil, err
    }
    return users, nil
}

Antaranya, kami menggunakan kaedah db.Query() untuk menanyakan data daripada pangkalan data MySQL dan mengisihnya dalam susunan menurun medan umur. Kemudian gunakan kaedah rows.Next() untuk membaca hasil pertanyaan baris demi baris ke dalam model data jenis struct dan tambahkan data pada kepingan pengguna. Akhirnya, kembalikan pengguna.

  1. Nyatakan syarat pertanyaan

Dalam situasi sebenar, kita selalunya perlu mendapatkan data khusus berdasarkan syarat pertanyaan yang diperlukan. Berikut ialah kod sampel untuk menentukan syarat pertanyaan:

func QueryUsersByAge(db *sql.DB, age int) ([]*User, error) {
    users := make([]*User, 0)
    rows, err := db.Query("SELECT * FROM users WHERE age > ? ORDER BY age DESC", age)
    if err != nil {
        return nil, err
    }
    defer rows.Close()
    for rows.Next() {
        user := new(User)
        err := rows.Scan(&user.Id, &user.Name, &user.Age, &user.Address)
        if err != nil {
            return nil, err
        }
        users = append(users, user)
    }
    if err := rows.Err(); err != nil {
        return nil, err
    }
    return users, nil
}

Dalam contoh ini, kami menggunakan kaedah db.Query() untuk menanyakan semua data dalam pangkalan data yang umurnya lebih besar daripada umur dan mengisihnya dalam menurun. susunan bidang umur.

3. Kesimpulan

Pangkalan data MySQL digunakan secara meluas dalam aplikasi korporat dan peribadi Untuk keperluan biasa seperti pertanyaan dan pengisihan data, kami boleh melaksanakannya dengan mudah menggunakan bahasa Go. Artikel ini menyediakan kod contoh untuk menyambung ke pangkalan data MySQL dan melaksanakan pertanyaan dan pengisihan data, dengan harapan dapat membantu pembaca menguasai teknologi berkaitan bahasa Go dan aplikasi pangkalan data MySQL dengan lebih baik.

Atas ialah kandungan terperinci Cara menggunakan bahasa Go untuk menanya dan mengisih data dalam pangkalan data MySQL. 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