Maison > Article > développement back-end > Utiliser Oracle dans Go : un guide complet
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!