Maison  >  Article  >  développement back-end  >  Comment se connecter à une base de données distante à l'aide de Golang ?

Comment se connecter à une base de données distante à l'aide de Golang ?

WBOY
WBOYoriginal
2024-06-01 20:31:59961parcourir

Grâce au package base de données/sql de la bibliothèque standard Go, vous pouvez vous connecter à des bases de données distantes telles que MySQL, PostgreSQL ou SQLite : créez une chaîne de connexion contenant les informations de connexion à la base de données. Utilisez la fonction sql.Open() pour ouvrir une connexion à la base de données. Effectuez des opérations de base de données telles que des requêtes SQL et des opérations d'insertion. Utilisez defer pour fermer la connexion à la base de données afin de libérer des ressources.

如何用 Golang 连接远程数据库?

Comment se connecter à une base de données distante avec Golang

Golang est un langage de programmation puissant qui peut facilement se connecter à une base de données distante. Ce didacticiel expliquera comment utiliser le package database/sql de la bibliothèque standard Go pour se connecter à des bases de données distantes telles que MySQL, PostgreSQL et SQLite. database/sql 包连接到 MySQL、PostgreSQL 和 SQLite 等远程数据库。

必备条件

  • Golang 1.16 或更高版本
  • 远程数据库(如 MySQL、PostgreSQL 或 SQLite)

连接字符串

首先,我们需要创建一个连接字符串,该字符串包含连接到数据库所需的信息。以下是如何创建不同数据库的连接字符串:

MySQL:

"user:password@tcp(host:port)/dbname"

PostgreSQL:

"user=username password=password host=address port=port dbname=database"

SQLite:

"path/to/sqlite.db"

其中,userpasswordhostportdbname 是特定于数据库的。

连接数据库

使用 database/sql

Exigences

  • Golang 1.16 ou supérieur
  • Base de données distante (telle que MySQL, PostgreSQL ou SQLite)

Chaîne de connexion

Tout d'abord, nous devons créez une chaîne de connexion contenant les informations nécessaires pour vous connecter à la base de données. Voici comment créer des chaînes de connexion pour différentes bases de données : 🎜🎜🎜MySQL : 🎜🎜
import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql" // Import MySQL driver
    _ "github.com/lib/pq" // Import PostgreSQL driver
    _ "github.com/mattn/go-sqlite3" // Import SQLite driver
)

func main() {
    // Create a connection string
    connStr := "user:password@tcp(host:port)/dbname"

    // Open the database connection
    db, err := sql.Open("mysql", connStr)
    if err != nil {
        panic(err)
    }
    defer db.Close()  // Close the connection when the function returns
}
🎜🎜PostgreSQL : 🎜🎜
package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql" // Import MySQL driver
)

func main() {
    // Connect to the database
    db, err := sql.Open("mysql", "root:@/test")
    if err != nil {
        panic(err)
    }
    defer db.Close() // Close the connection when the function returns

    // Create a table
    query := `CREATE TABLE IF NOT EXISTS users (
        id INT PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(255) NOT NULL,
        password VARCHAR(255) NOT NULL
    );`
    _, err = db.Exec(query)
    if err != nil {
        panic(err)
    }

    // Insert a record into the table
    query = `INSERT INTO users (username, password) VALUES (?, ?)`
    stmt, err := db.Prepare(query)
    if err != nil {
        panic(err)
    }
    _, err = stmt.Exec("admin", "password")
    if err != nil {
        panic(err)
    }

    // Retrieve the record from the table
    query = `SELECT * FROM users WHERE id = ?`
    var id int
    var username string
    var password string
    err = db.QueryRow(query, 1).Scan(&id, &username, &password)
    if err != nil {
        panic(err)
    }
    fmt.Println("ID:", id, "Username:", username, "Password:", password)
}
🎜🎜SQLite : 🎜🎜rrreee🎜Où, utilisateur, mot de passe, <code>host, port et dbname sont spécifiques à la base de données. 🎜🎜Connectez-vous à la base de données🎜🎜Utilisez le package database/sql pour vous connecter à la base de données : 🎜rrreee🎜Cas pratique🎜🎜Ce qui suit est un exemple simple utilisant la base de données MySQL :🎜rrreee

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