Heim > Backend-Entwicklung > Golang > Verwendung von Oracle in Go: Eine vollständige Anleitung

Verwendung von Oracle in Go: Eine vollständige Anleitung

王林
Freigeben: 2023-06-17 20:58:35
Original
3108 Leute haben es durchsucht

Oracle in Go verwenden: Eine vollständige Anleitung

Oracle-Datenbank ist eine der führenden relationalen Datenbanken der Branche und wird für ihre Datensicherheit und Zuverlässigkeit hoch gelobt. Viele Unternehmen nutzen Oracle-Datenbanken, um riesige Datenmengen zu speichern und zu verwalten. Mit dem Aufstieg und der Anwendung der Go-Sprache beginnen immer mehr Menschen, sich mit der Verwendung von Oracle in der Go-Sprache zu befassen.

Oracle stellt offiziell einen Treiber für die Go-Sprache zur Verfügung, nämlich „go-oci8“. In diesem Artikel erfahren Sie, wie Sie den Treiber installieren, die Verbindung initialisieren und Abfrage-, Lösch- und Einfügevorgänge durchführen.

Installieren Sie den Oracle-Treiber

Zuerst müssen wir den go-oci8-Treiber installieren. Der Treiber ruft die Oracle-Datenbank-Clientbibliothek über CGO auf. Sie müssen daher vor der Installation prüfen, ob die Oracle-Clientbibliothek installiert ist.

Laden Sie das Installationspaket herunter: https://oracle.github.io/odpi/doc/installation.html#linux

Der Installationsprozess ist einfach: Entpacken Sie einfach das Installationsskript und führen Sie es aus. Nach Abschluss der Installation können Sie den go-oci8-Treiber installieren. Verwenden Sie den folgenden Befehl:

go get -v -u gopkg.in/goracle.v2
Nach dem Login kopieren

Initialisieren Sie die Verbindung

Nachdem der Treiber installiert und konfiguriert wurde, können wir eine Verbindung zur Oracle-Datenbank in der Go-Sprache herstellen. Sie können den folgenden Code verwenden, um die Verbindung zu initialisieren:

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")
}
Nach dem Login kopieren

Wir müssen die Verbindungszeichenfolge der Oracle-Datenbank bereitstellen. Die Verbindungszeichenfolge enthält Folgendes: Benutzername, Passwort, Host (oder IP-Adresse), Port und Datenbank-SID. Wenn Sie mit Oracle-Verbindungszeichenfolgen nicht vertraut sind, finden Sie weitere Informationen in der offiziellen Dokumentation von Oracle.

Wenn nach dem Ausführen des obigen Codes die Verbindung erfolgreich ist, wird „Erfolgreich verbunden“ ausgegeben.

Abfragevorgang

Das Folgende ist ein Beispielcode für die Abfrage der Oracle-Datenbank:

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)
    }
}
Nach dem Login kopieren

Dieser Code fragt alle Mitarbeiterinformationen mit der Abteilungsnummer 10 in der Mitarbeitertabelle ab. Beachten Sie, dass in der Abfrage benannte Parameter verwendet werden. Wenn Sie Positionsparameter verwenden müssen, verwenden Sie „?“ anstelle von „:1“.

Aktualisierungsvorgang

Das Folgende ist ein Beispielcode zum Aktualisieren der Oracle-Datenbank:

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)
}
Nach dem Login kopieren

Dieser Code aktualisiert das Gehalt des Mitarbeiters mit der Nummer 7369 in der Mitarbeitertabelle auf 10000.

Einfügevorgang

Hier ist ein Beispielcode zum Einfügen eines Datensatzes in die Oracle-Datenbank:

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)
}
Nach dem Login kopieren

Dieser Code fügt einen neuen Datensatz in die Mitarbeitertabelle ein.

Zusammenfassung

In diesem Artikel wird erläutert, wie Sie die Oracle-Datenbank in der Go-Sprache verwenden. Wir haben gelernt, wie man eine Verbindung initialisiert, Abfragen durchführt, Aktualisierungen durchführt und Vorgänge einfügt. Darüber hinaus erfahren Sie, wie Sie die erforderlichen Treiber installieren. Die obige Methode ist nützlich, wenn Ihre Anwendung mit der Oracle-Datenbank interagieren muss.

Das obige ist der detaillierte Inhalt vonVerwendung von Oracle in Go: Eine vollständige Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage