Maison >développement back-end >Golang >Utiliser Oracle dans Go : un guide complet

Utiliser Oracle dans Go : un guide complet

王林
王林original
2023-06-17 20:58:353124parcourir

Utiliser Oracle in Go : un guide complet

La base de données Oracle est l'une des principales bases de données relationnelles du secteur et est très appréciée pour la sécurité et la fiabilité de ses données. De nombreuses entreprises utilisent des bases de données Oracle pour sauvegarder et gérer d'énormes quantités de données. Aujourd'hui, avec l'essor et l'application du langage Go, de plus en plus de personnes commencent à explorer comment utiliser Oracle en langage Go.

Oracle fournit officiellement un pilote pour le langage Go, à savoir "go-oci8". Dans cet article, nous expliquerons comment installer le pilote, initialiser la connexion et effectuer des opérations de requête, de suppression et d'insertion.

Installez le pilote Oracle

Tout d'abord, nous devons installer le pilote go-oci8. Le pilote appelle la bibliothèque client de base de données Oracle via CGO, vous devez donc vérifier si la bibliothèque client Oracle est installée avant l'installation.

Téléchargez le package d'installation : https://oracle.github.io/odpi/doc/installation.html#linux

Le processus d'installation est simple, il suffit de décompresser et d'exécuter le script d'installation. Une fois l'installation terminée, vous pouvez installer le pilote go-oci8. Utilisez la commande suivante :

go get -v -u gopkg.in/goracle.v2

Initialisez la connexion

Une fois le pilote installé et configuré, nous pouvons nous connecter à la base de données Oracle en langage Go. Vous pouvez utiliser le code suivant pour initialiser la connexion :

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")
}

Nous devons fournir la chaîne de connexion de la base de données Oracle. La chaîne de connexion contient les éléments suivants : nom d'utilisateur, mot de passe, hôte (ou adresse IP), port et SID de la base de données. Si vous n'êtes pas familier avec les chaînes de connexion Oracle, vous pouvez vous référer à la documentation officielle d'Oracle pour plus d'informations.

Après avoir exécuté le code ci-dessus, si la connexion réussit, "Connecté avec succès" sera affiché.

Opération de requête

Ce qui suit est un exemple de code pour interroger la base de données 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)
    }
}

Ce code interroge toutes les informations sur les employés avec le numéro de service 10 dans la table des employés. Notez que les paramètres nommés sont utilisés dans la requête. Si vous devez utiliser des paramètres de position, utilisez "?" au lieu de ":1".

Opération de mise à jour

Voici un exemple de code pour mettre à jour la base de données 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)
}

Ce code met à jour le salaire de l'employé numéro 7369 dans la table des employés à 10000.

Opération d'insertion

Voici un exemple de code pour insérer un enregistrement dans la base de données 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)
}

Ce code insère un nouvel enregistrement dans la table des employés.

Résumé

Cet article présente comment utiliser la base de données Oracle en langage Go. Nous avons appris à initialiser une connexion, à effectuer des requêtes, des mises à jour et des opérations d'insertion. De plus, nous expliquons comment installer les pilotes nécessaires. La méthode ci-dessus est utile si votre application doit interagir avec la base de données Oracle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn