Rumah > Artikel > pembangunan bahagian belakang > Menggunakan Oracle dalam Go: Panduan Lengkap
Menggunakan Oracle dalam Bahasa Go: Panduan Lengkap
Pangkalan data Oracle ialah salah satu pangkalan data perhubungan terkemuka industri dan sangat dipuji kerana keselamatan dan kebolehpercayaan datanya. Banyak syarikat menggunakan pangkalan data Oracle untuk menyimpan dan mengurus sejumlah besar data. Kini, dengan peningkatan dan penggunaan bahasa Go, semakin ramai orang mula meneroka cara menggunakan Oracle dalam bahasa Go.
Oracle secara rasmi menyediakan pemandu untuk bahasa Go iaitu "go-oci8". Dalam artikel ini, kami akan membincangkan cara memasang pemacu, memulakan sambungan dan melaksanakan operasi pertanyaan, memadam dan memasukkan.
Pasang pemacu Oracle
Mula-mula, kita perlu memasang pemacu go-oci8. Pemacu memanggil perpustakaan pelanggan pangkalan data Oracle melalui CGO, jadi anda perlu menyemak sama ada perpustakaan klien Oracle dipasang sebelum pemasangan.
Muat turun pakej pemasangan: https://oracle.github.io/odpi/doc/installation.html#linux
Proses pemasangan adalah mudah, cuma nyahzip dan jalankan skrip pemasangan. Selepas melengkapkan pemasangan, anda boleh memasang pemacu go-oci8. Gunakan arahan berikut:
go get -v -u gopkg.in/goracle.v2
Mulakan sambungan
Selepas pemacu dipasang dan dikonfigurasikan, kami boleh menyambung ke pangkalan data Oracle dalam bahasa Go. Anda boleh menggunakan kod berikut untuk memulakan sambungan:
package main import ( "database/sql" "fmt" _ "gopkg.in/goracle.v2" ) func main() { // 格式:[账号]/[密码]@[主机名]:[端口号]/[SID] connectionString := "scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))" db, err := sql.Open("goracle", connectionString) if err != nil { fmt.Println("Connection Failed : ", err) return } defer db.Close() fmt.Println("Connected successfully") }
Kami perlu menyediakan rentetan sambungan pangkalan data Oracle. Rentetan sambungan mengandungi yang berikut: nama pengguna, kata laluan, hos (atau alamat IP), port dan SID pangkalan data. Jika anda tidak biasa dengan rentetan sambungan Oracle, anda boleh merujuk kepada dokumentasi rasmi Oracle untuk mendapatkan maklumat lanjut.
Selepas menjalankan kod di atas, jika sambungan berjaya, "Berjaya disambungkan" akan dikeluarkan.
Operasi pertanyaan
Berikut ialah kod sampel untuk menanyakan pangkalan data Oracle:
package main import ( "database/sql" "fmt" _ "gopkg.in/goracle.v2" ) func main() { // Initialize connection connectionString := "scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))" db, err := sql.Open("goracle", connectionString) if err != nil { fmt.Println("Connection Failed : ", err) return } defer db.Close() // Execute SQL query rows, err := db.Query("SELECT EMPNO, ENAME, SAL FROM EMP WHERE DEPTNO = :1", 10) if err != nil { fmt.Println("Error executing SQL query: ", err) return } defer rows.Close() // Process rows for rows.Next() { var empno int var ename string var sal int if err := rows.Scan(&empno, &ename, &sal); err != nil { fmt.Println("Error scanning row: ", err) return } fmt.Println(empno, ename, sal) } }
Kod ini menanyakan semua maklumat pekerja dengan nombor jabatan 10 dalam jadual pekerja. Ambil perhatian bahawa parameter bernama digunakan dalam pertanyaan. Jika anda perlu menggunakan parameter kedudukan, gunakan "?" dan bukannya ":1".
Kemas kini operasi
Berikut ialah contoh kod untuk mengemas kini pangkalan data Oracle:
package main import ( "database/sql" "fmt" _ "gopkg.in/goracle.v2" ) func main() { // Initialize connection connectionString := "scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))" db, err := sql.Open("goracle", connectionString) if err != nil { fmt.Println("Connection Failed : ", err) return } defer db.Close() // Execute SQL update result, err := db.Exec("UPDATE EMP SET SAL = :1 WHERE EMPNO = :2", 10000, 7369) if err != nil { fmt.Println("Error executing SQL update: ", err) return } rowsAffected, err := result.RowsAffected() if err != nil { fmt.Println("Error getting affected rows: ", err) return } fmt.Println("Rows affected:", rowsAffected) }
Kod ini mengemas kini gaji pekerja nombor 7369 dalam jadual pekerja kepada 10000.
Kendalian sisip
Berikut ialah kod sampel untuk memasukkan rekod dalam pangkalan data Oracle:
package main import ( "database/sql" "fmt" _ "gopkg.in/goracle.v2" ) func main() { // Initialize connection connectionString := "scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))" db, err := sql.Open("goracle", connectionString) if err != nil { fmt.Println("Connection Failed : ", err) return } defer db.Close() // Execute SQL insert result, err := db.Exec("INSERT INTO EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (:1, :2, :3, :4, :5, :6, :7, :8)", 1000, "Test", "Test", 7369, "01-JAN-00", 10000, 0, 10) if err != nil { fmt.Println("Error executing SQL insert: ", err) return } rowsAffected, err := result.RowsAffected() if err != nil { fmt.Println("Error getting affected rows: ", err) return } fmt.Println("Rows affected:", rowsAffected) }
Kod ini memasukkan rekod baharu ke dalam jadual pekerja.
Ringkasan
Artikel ini memperkenalkan cara menggunakan pangkalan data Oracle dalam bahasa Go. Kami mempelajari cara untuk memulakan sambungan, melakukan pertanyaan, kemas kini dan operasi sisipan. Selain itu, kami meliputi cara memasang pemacu yang diperlukan. Kaedah di atas berguna jika aplikasi anda perlu berinteraksi dengan pangkalan data Oracle.
Atas ialah kandungan terperinci Menggunakan Oracle dalam Go: Panduan Lengkap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!