Dalam Java, melaksanakan berbilang pernyataan SQL dalam satu kelompok boleh dicapai melalui kaedah PreparedStatement dan executeBatch(). Tetapi bagaimana kita boleh mencapai perkara yang sama menggunakan pangkalan data/pakej sql Go?
Pakej pangkalan data/sql menyediakan fungsi Exec yang boleh melaksanakan pernyataan SQL. Walau bagaimanapun, ia hanya memerlukan satu set hujah. Untuk menyusun berbilang pernyataan, kita boleh menggunakan fungsi variadic dan membina satu pernyataan SQL yang merangkumi semua pernyataan individu untuk dilaksanakan.
Berikut ialah contoh:
func bulkInsert(unsavedRows []*ExampleRowStruct) error { var ( valueStrings []string valueArgs []interface{} ) for _, post := range unsavedRows { valueStrings = append(valueStrings, "(?, ?, ?)") valueArgs = append(valueArgs, post.Column1) valueArgs = append(valueArgs, post.Column2) valueArgs = append(valueArgs, post.Column3) } stmt := fmt.Sprintf( "INSERT INTO my_sample_table (column1, column2, column3) VALUES %s", strings.Join(valueStrings, ","), ) _, err := db.Exec(stmt, valueArgs...) return err }
Kod ini membina pernyataan SQL tunggal yang memasukkan semua baris ke dalam pangkalan data. Dengan menghantar hujah pernyataan individu (nilai) sebagai parameter variadic, kita boleh melaksanakan berbilang kenyataan dalam satu rangkaian pergi balik. Ujian telah menunjukkan bahawa pendekatan ini boleh menjadi jauh lebih pantas daripada menggunakan kaedah Mula, Sediakan dan Komit untuk menggabungkan pernyataan SQL.
Atas ialah kandungan terperinci Bagaimana untuk Mengumpulkan Penyata SQL dengan Cekap Menggunakan pangkalan data/Pakej sql Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!