Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan Oracle dalam Go: Panduan Lengkap

Menggunakan Oracle dalam Go: Panduan Lengkap

王林
王林asal
2023-06-17 20:58:353051semak imbas

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!

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