Jadual Kandungan
✅ 1. Import pakej yang diperlukan
✅ 2. Buka sambungan ke pangkalan data
✅ 3. Lakukan pertanyaan
✅ 4. Gunakan penyatuan sambungan (pilihan tetapi disyorkan)
Contoh kerja penuh (mysql)
Ringkasan
Rumah pembangunan bahagian belakang Golang Bagaimana untuk menyambung ke pangkalan data SQL di GO?

Bagaimana untuk menyambung ke pangkalan data SQL di GO?

Aug 03, 2025 am 09:31 AM
go

Untuk menyambung ke pangkalan data SQL di GO, anda perlu menggunakan pakej pangkalan data/SQL dan pemacu pangkalan data tertentu. 1. Pakej dan Pemacu Pangkalan Data/SQL Import (seperti github.com/go-sql-driver/mysql), dan perhatikan bahawa garis bawah sebelum pemandu bermaksud bahawa ia hanya digunakan untuk permulaan; 2. Gunakan sql.open ("mysql", "pengguna: kata laluan@tcp (localhost: 3306)/dbName") untuk membuat pemegang pangkalan data, dan hubungi db.ping () untuk mengesahkan sambungan; 3. Gunakan db.Query () untuk melaksanakan pertanyaan, db.exec () untuk melakukan penyisipan, kemas kini atau memadam, dan baca hasilnya melalui baris.scan (), dan perhatikan untuk memeriksa baris.err (); 4. Anda boleh mengkonfigurasi parameter kolam sambungan seperti db.setmaxopenconns (25) untuk mengoptimumkan prestasi. Contoh lengkap termasuk import, sambungan, pertanyaan, dan pelepasan sumber, memastikan kesilapan dikendalikan pada setiap langkah, dan akhirnya berjaya menyambung dan mengendalikan pangkalan data.

Bagaimana untuk menyambung ke pangkalan data SQL di GO?

Menyambung ke pangkalan data SQL di GO adalah mudah menggunakan pakej database/sql , yang menyediakan antara muka generik untuk pangkalan data SQL, bersama dengan pemandu khusus untuk pangkalan data yang anda gunakan (seperti MySQL, PostgreSQL, SQLite, dan lain -lain).

Bagaimana untuk menyambung ke pangkalan data SQL di GO?

Inilah caranya untuk melangkah langkah demi langkah:


✅ 1. Import pakej yang diperlukan

Anda memerlukan dua perkara:

Bagaimana untuk menyambung ke pangkalan data SQL di GO?
  • Pakej database/sql (Perpustakaan GO Standard)
  • Pemandu untuk pangkalan data khusus anda

Sebagai contoh, jika anda menggunakan PostgreSQL , anda mungkin menggunakan lib/pq atau jackc/pgx ; Untuk MySQL , go-sql-driver/mysql ; Untuk SQLite , mattn/go-sqlite3 .

Pasang pemacu melalui go.mod (contoh untuk mysql):

Bagaimana untuk menyambung ke pangkalan data SQL di GO?
 Pergi mendapatkan github.com/go-sql-driver/mysql

Kemudian import dalam kod anda:

 import (
    "Pangkalan Data/SQL"
    "FMT"
    _ "github.com/go-sql-driver/mysql" // pemacu import (perhatikan garis bawah)
)

? _ Bermaksud kita mengimportnya untuk kesan sampingannya (memulakan pemandu), tidak menggunakannya secara langsung.


✅ 2. Buka sambungan ke pangkalan data

Gunakan sql.Open() untuk membuat pemegang pangkalan data. Ia tidak menyambung dengan segera tetapi memulakan maklumat sambungan.

 db, err: = sql.open ("mysql", "pengguna: kata laluan@tcp (localhost: 3306)/dbName")
jika err! = nil {
    panik (err)
}
menangguhkan db.close () // pastikan untuk ditutup apabila selesai

Ganti rentetan sambungan bergantung pada DB anda:

  • MySQL : "user:pass@tcp(localhost:3306)/mydb"
  • PostgreSQL : "host=localhost user=usr password=pass dbname=mydb sslmode=disable" (dengan jackc/pgx )
  • SQLITE : "file:mydb.sqlite"

⚠️ sql.Open() tidak boleh mengembalikan ralat walaupun DSN salah - ia hanya menyediakan sambungan. Untuk menguji sambungan, gunakan db.Ping() .

 err = db.ping ()
jika err! = nil {
    Panik ("Tidak dapat menyambung ke pangkalan data:" err.error ())
}

✅ 3. Lakukan pertanyaan

Setelah disambungkan, anda boleh menjalankan pertanyaan:

 baris, err: = db.Query ("Pilih ID, Nama dari Pengguna")
jika err! = nil {
    panik (err)
}
menangguhkan baris.close ()

untuk rows.next () {
    var id int
    rentetan nama var
    err: = rows.scan (& id, & nama)
    jika err! = nil {
        panik (err)
    }
    fmt.printf ("id: %d, nama: %s \ n", id, nama)
}

// periksa kesilapan selepas lelaran
jika err = rows.err (); err! = nil {
    panik (err)
}

Gunakan db.Exec() untuk memasukkan, mengemas kini, padamkan:

 Hasil, Err: = db.exec ("Masukkan ke dalam nilai pengguna (nama) (?)", "Alice")
jika err! = nil {
    panik (err)
}

lastId, err: = result.lastInsertId ()
jika err! = nil {
    panik (err)
}
fmt.printf ("ID dimasukkan terakhir: %d \ n", lastId)

✅ 4. Gunakan penyatuan sambungan (pilihan tetapi disyorkan)

GO's sql.DB direka untuk menjadi lama dan mengendalikan sambungan sambungan secara automatik.

Anda boleh menyesuaikannya:

 db.setmaxopenconns (25)
db.setMaxidLeConns (5)
db.setConnmaxlifetime (5 * time.minute)

Ini membantu mengelakkan keletihan sumber dalam pengeluaran.


Contoh kerja penuh (mysql)

 Pakej utama

import (
    "Pangkalan Data/SQL"
    "FMT"
    "Log"
    _ "github.com/go-sql-driver/mysql"
)

func main () {
    db, err: = sql.open ("mysql", "root: kata laluan@tcp (127.0.0.1:3306)/testdb")
    jika err! = nil {
        log.fatal (err)
    }
    menangguhkan db.close ()

    err = db.ping ()
    jika err! = nil {
        Log.Fatal ("Gagal Pangkalan Pangkalan Data:", Err)
    }

    rentetan versi var
    err = db.QueryRow ("Pilih versi ()"). Scan (& versi)
    jika err! = nil {
        log.fatal (err)
    }

    fmt.println ("Versi pangkalan data:", versi)
}

Ringkasan

  • Gunakan database/sql Pemandu
  • Hubungi sql.Open() dengan DSN yang betul
  • Selalu db.Ping() untuk mengesahkan sambungan
  • Gunakan Query , Exec , QueryRow untuk operasi
  • Lepaskan menguruskan sambungan melalui penyatuan

Ia tidak kompleks, tetapi mudah untuk mengacaukan pemformatan DSN atau lupa pemeriksaan ralat selepas rows.Next() .

Pada asasnya, itu sahaja yang anda perlukan untuk memulakan penyambungan pergi ke pangkalan data SQL.

Atas ialah kandungan terperinci Bagaimana untuk menyambung ke pangkalan data SQL di GO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Rimworld Odyssey Cara Ikan
1 bulan yang lalu By Jack chen
Apakah had transaksi untuk pengguna asing di Alipay?
1 bulan yang lalu By 下次还敢
Bolehkah saya mempunyai dua akaun Alipay?
1 bulan yang lalu By 下次还敢

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1506
276
Apakah susun atur projek standard untuk aplikasi Go? Apakah susun atur projek standard untuk aplikasi Go? Aug 02, 2025 pm 02:31 PM

Jawapannya ialah: Permohonan GO tidak mempunyai susun atur projek wajib, tetapi masyarakat umumnya mengamalkan struktur standard untuk meningkatkan kebolehpercayaan dan skalabilitas. 1.CMD/menyimpan pintu masuk program, setiap subdirektori sepadan dengan fail yang boleh dilaksanakan, seperti CMD/MYAPP/MAIN.GO; 2. Kod Swasta/ Kedai, tidak boleh diimport oleh modul luaran, dan digunakan untuk merangkum logik dan perkhidmatan perniagaan; 3.PKG/ Kedai Perpustakaan yang boleh digunakan semula secara terbuka untuk mengimport projek lain; 4.API/ Pilihan menyimpan OpenAPI, Protobuf dan fail definisi API lain; 5.Config/, skrip/, dan fail konfigurasi web/kedai, skrip dan sumber web masing -masing; 6. direktori akar mengandungi go.mod dan go.sum

Bagaimana anda membaca baris fail mengikut baris? Bagaimana anda membaca baris fail mengikut baris? Aug 02, 2025 am 05:17 AM

Menggunakan bufio.scanner adalah kaedah yang paling biasa dan efisien dalam GO untuk membaca fail mengikut baris, dan sesuai untuk mengendalikan senario seperti fail besar, fail parsing log atau konfigurasi. 1. Buka fail menggunakan os.open dan pastikan untuk menutup fail melalui deferfile.close (). 2. Buat contoh pengimbas melalui bufio.newscanner. 3. Panggilan Scanner.scan () dalam gelung untuk membaca garis demi baris sehingga palsu dikembalikan untuk menunjukkan bahawa akhir fail dicapai atau ralat berlaku. 4. Gunakan Scanner.Text () untuk mendapatkan kandungan baris semasa (tidak termasuk aksara baru). 5. Semak Scanner.err () selepas gelung selesai untuk menangkap kesilapan baca yang mungkin. Kaedah ini mempunyai kesan ingatan

Bagaimana anda menggunakan pernyataan bersyarat seperti jika-else di Go? Bagaimana anda menggunakan pernyataan bersyarat seperti jika-else di Go? Aug 02, 2025 pm 03:16 PM

Kenyataan IF-ELSE di GO tidak memerlukan kurungan tetapi mesti menggunakan pendakap keriting. Ia menyokong permulaan pembolehubah dalam jika menghadkan skop. Keadaan boleh dinilai melalui rantai lain, yang sering digunakan untuk pemeriksaan ralat. Gabungan pengisytiharan dan syarat pembolehubah dapat meningkatkan kesederhanaan dan keselamatan kod.

Bagaimana anda menghuraikan bendera baris perintah? Bagaimana anda menghuraikan bendera baris perintah? Aug 02, 2025 pm 04:24 PM

Pakej bendera Go dengan mudah boleh menghuraikan parameter baris arahan. 1. Gunakan flag.type () untuk menentukan bendera jenis seperti rentetan, integer, dan boolean; 2. Anda boleh menghuraikan bendera kepada pembolehubah melalui flag.typevar () untuk mengelakkan operasi penunjuk; 3. Selepas memanggil flag.parse (), gunakan flag.args () untuk mendapatkan parameter kedudukan berikutnya; 4. Melaksanakan Bendera. Antara muka nilai boleh menyokong jenis tersuai untuk memenuhi keperluan CLI yang paling mudah. Senario kompleks boleh digantikan oleh perpustakaan SPF13/COBRA.

Apa yang dilakukan oleh Perintah Perjalanan? Apa yang dilakukan oleh Perintah Perjalanan? Aug 03, 2025 am 03:49 AM

Gorun adalah arahan untuk menyusun dan melaksanakan program GO dengan cepat. 1. Ia melengkapkan kompilasi dan berjalan dalam satu langkah, menghasilkan fail yang boleh dilaksanakan sementara dan memadamnya selepas program selesai; 2. Ia sesuai untuk program bebas yang mengandungi fungsi utama, yang mudah dibangunkan dan diuji; 3. Ia menyokong operasi pelbagai fail, dan boleh dilaksanakan melalui Gorun*.go atau menyenaraikan semua fail; 4. Ia secara automatik memproses kebergantungan dan menggunakan sistem modul untuk menghuraikan pakej luaran; 5. Ia tidak sesuai untuk perpustakaan atau pakej, dan tidak menjana fail binari yang berterusan. Oleh itu, ia sesuai untuk ujian pesat semasa skrip, pembelajaran dan pengubahsuaian yang kerap. Ia adalah cara yang cekap dan ringkas.

Bagaimana anda mengendalikan penghalaan dalam aplikasi web Go? Bagaimana anda mengendalikan penghalaan dalam aplikasi web Go? Aug 02, 2025 am 06:49 AM

Routing dalam aplikasi GO bergantung kepada kerumitan projek. 1. Perpustakaan standard Net/HttpserveMux sesuai untuk aplikasi mudah, tanpa kebergantungan luaran dan ringan, tetapi tidak menyokong parameter URL dan pemadanan lanjutan; 2. Router pihak ketiga seperti CHI menyediakan middleware, parameter laluan dan penghalaan bersarang, yang sesuai untuk reka bentuk modular; 3. Gin mempunyai prestasi yang sangat baik, pemprosesan JSON terbina dalam dan fungsi yang kaya, yang sesuai untuk API dan microservices. Ia harus dipilih berdasarkan sama ada fleksibiliti, prestasi atau integrasi berfungsi diperlukan. Projek -projek kecil menggunakan perpustakaan standard, projek sederhana dan besar mengesyorkan CHI atau GIN, dan akhirnya mencapai pengembangan yang lancar dari mudah ke kompleks.

Bagaimana anda mengisytiharkan pemalar di Go? Bagaimana anda mengisytiharkan pemalar di Go? Aug 02, 2025 pm 04:21 PM

Di Go, pemalar diisytiharkan menggunakan kata kunci Const, dan nilai tidak dapat diubah, dan tidak boleh jenis atau jenis; 1. Satu perisytiharan tetap seperti Constpi = 3.14159; 2. Pelbagai deklarasi malar di blok adalah seperti const (pi = 3.14159; bahasa = "go"; iscool = true); 3. Pemalar jenis eksplisit seperti ConstSecondSinMinuteInt = 60; 4. Gunakan IOTA untuk menjana nilai penghitungan, seperti Const (Ahad = IOTA; Isnin; Selasa) akan memberikan nilai 0, 1, dan 2 dalam urutan, dan IOTA boleh digunakan untuk ungkapan seperti operasi bit; Pemalar mesti menentukan nilai pada masa penyusunan,

Bagaimana untuk menyambung ke pangkalan data SQL di GO? Bagaimana untuk menyambung ke pangkalan data SQL di GO? Aug 03, 2025 am 09:31 AM

Untuk menyambung ke pangkalan data SQL di GO, anda perlu menggunakan pakej pangkalan data/SQL dan pemacu pangkalan data tertentu. 1. Pakej dan Pemacu Pangkalan Data/SQL Import (seperti github.com/go-sql-driver/mysql), perhatikan bahawa menggariskan sebelum pemandu menunjukkan bahawa ia hanya digunakan untuk permulaan; 2. Gunakan sql.open ("mysql", "pengguna: kata laluan@tcp (localhost: 3306)/dbName") untuk membuat pemegang pangkalan data, dan hubungi db.ping () untuk mengesahkan sambungan; 3. Gunakan db.query () untuk melaksanakan pertanyaan, dan db.exec () untuk melaksanakan

See all articles