Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verbinde ich mich mit Golang mit einer Remote-Datenbank?

Wie verbinde ich mich mit Golang mit einer Remote-Datenbank?

WBOY
WBOYOriginal
2024-06-01 20:31:59961Durchsuche

Über das Datenbank-/SQL-Paket der Go-Standardbibliothek können Sie eine Verbindung zu Remote-Datenbanken wie MySQL, PostgreSQL oder SQLite herstellen: Erstellen Sie eine Verbindungszeichenfolge mit Datenbankverbindungsinformationen. Verwenden Sie die Funktion sql.Open(), um eine Datenbankverbindung zu öffnen. Führen Sie Datenbankoperationen wie SQL-Abfragen und Einfügeoperationen durch. Verwenden Sie „defer“, um die Datenbankverbindung zu schließen und Ressourcen freizugeben.

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

So stellen Sie mit Golang eine Verbindung zu einer Remote-Datenbank her

Golang ist eine leistungsstarke Programmiersprache, die problemlos eine Verbindung zu einer Remote-Datenbank herstellen kann. In diesem Tutorial erfahren Sie, wie Sie das Go-Standardbibliothekspaket database/sql verwenden, um eine Verbindung zu Remote-Datenbanken wie MySQL, PostgreSQL und SQLite herzustellen. 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

Anforderungen

  • Golang 1.16 oder höher
  • Remote-Datenbank (wie MySQL, PostgreSQL oder SQLite)

Verbindungszeichenfolge

Zuerst müssen wir Erstellen Sie eine Verbindungszeichenfolge, die die für die Verbindung mit der Datenbank erforderlichen Informationen enthält. So erstellen Sie Verbindungszeichenfolgen für verschiedene Datenbanken: 🎜🎜🎜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🎜Wobei, Benutzer, Passwort, <code>host, port und dbname sind datenbankspezifisch. 🎜🎜Mit der Datenbank verbinden🎜🎜Verwenden Sie das Paket database/sql, um eine Verbindung mit der Datenbank herzustellen: 🎜rrreee🎜Praktischer Fall🎜🎜Das Folgende ist ein einfaches Beispiel für die Verwendung der MySQL-Datenbank:🎜rrreee

Das obige ist der detaillierte Inhalt vonWie verbinde ich mich mit Golang mit einer Remote-Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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