Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membaca Lajur 'PILIH *' ke dalam []Keratan rentetan dalam Go?

Bagaimana untuk Membaca Lajur 'PILIH *' ke dalam []Keratan rentetan dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-11-15 01:27:02
asal
873 orang telah melayarinya

How to Read

Membaca "SELECT *" Lajur ke dalam []rentetan dalam Go

Dalam dunia pangkalan data, mengambil data daripada jadual menggunakan "SELECT " pertanyaan adalah amalan biasa, tetapi dalam dunia pengaturcaraan, bekerja secara manual dengan data sedemikian boleh menyusahkan. Artikel ini bertujuan untuk memudahkan proses membaca hasil pertanyaan "SELECT " ke dalam []hirisan rentetan dalam Go, memanfaatkan pustaka standard Go yang mantap.

Apabila berurusan dengan jadual dengan bilangan lajur yang tidak diketahui dan jenis data, cabarannya terletak pada menangkap data ke dalam bentuk berstruktur. Kaedah Imbasan yang disediakan oleh Rows membolehkan anda mengisi jenis data tertentu ke dalam pembolehubah yang dipratakrifkan, tetapi ia tidak menawarkan cara langsung untuk membaca ke dalam rentetan [].

Untuk mengatasinya, kami menggunakan teknik yang mencipta hirisan []antara muka{}, di mana setiap elemen ialah penunjuk kepada rentetan dalam hirisan rentetan []. Langkah merapatkan ini membolehkan kaedah Imbasan mengisi kepingan antara muka, yang kemudiannya boleh ditukar dengan mudah kepada []rentetan yang diingini.

Berikut ialah versi pindaan bagi contoh kod yang disediakan dalam soalan:

func dumpTable(rows *sql.Rows, out io.Writer) error {
    colNames, err := rows.Columns()
    if err != nil {
        return err
    }
    writer := csv.NewWriter(out)
    writer.Comma = '\t'
    readCols := make([]interface{}, len(colNames))
    writeCols := make([]string, len(colNames))
    for i, _ := range writeCols {
        readCols[i] = &writeCols[i]
    }
    for rows.Next() {
        err := rows.Scan(readCols...)
        if err != nil {
            return err
        }
        writer.Write(writeCols)
    }
    if err = rows.Err(); err != nil {
        return err
    }
    writer.Flush()
    return nil
}
Salin selepas log masuk

Penyelesaian ini dengan lancar merapatkan jurang antara kaedah Imbasan dan rentetan [], membolehkan anda menyimpan hasil pertanyaan "PILIH *" ke dalam format berstruktur dan boleh digunakan.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Lajur 'PILIH *' ke dalam []Keratan rentetan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan