> 백엔드 개발 > Golang > Golang을 사용하여 원격 데이터베이스에 연결하는 방법은 무엇입니까?

Golang을 사용하여 원격 데이터베이스에 연결하는 방법은 무엇입니까?

WBOY
풀어 주다: 2024-06-01 20:31:59
원래의
981명이 탐색했습니다.

Go 표준 라이브러리 데이터베이스/sql 패키지를 통해 MySQL, PostgreSQL 또는 SQLite와 같은 원격 데이터베이스에 연결할 수 있습니다. 데이터베이스 연결 정보가 포함된 연결 문자열을 만듭니다. sql.Open() 함수를 사용하여 데이터베이스 연결을 엽니다. SQL 쿼리 및 삽입 작업과 같은 데이터베이스 작업을 수행합니다. 리소스를 해제하기 위해 defer를 사용하여 데이터베이스 연결을 닫습니다.

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

Golang을 사용하여 원격 데이터베이스에 연결하는 방법

Golang은 원격 데이터베이스에 쉽게 연결할 수 있는 강력한 프로그래밍 언어입니다. 이 튜토리얼에서는 Go 표준 라이브러리 database/sql 패키지를 사용하여 MySQL, PostgreSQL 및 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

요구 사항

  • Golang 1.16 이상
  • 원격 데이터베이스(예: MySQL, PostgreSQL 또는 SQLite)

연결 문자열

먼저 다음이 필요합니다. 데이터베이스에 연결하는 데 필요한 정보가 포함된 연결 문자열을 만듭니다. 다양한 데이터베이스에 대한 연결 문자열을 생성하는 방법은 다음과 같습니다. 🎜🎜🎜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🎜Where, user, password / code>, <code>host, portdbname은 데이터베이스별로 다릅니다. 🎜🎜데이터베이스에 연결🎜🎜database/sql 패키지를 사용하여 데이터베이스에 연결하세요. 🎜rrreee🎜실용 사례🎜🎜다음은 MySQL 데이터베이스를 사용하는 간단한 예입니다.🎜rrreee

위 내용은 Golang을 사용하여 원격 데이터베이스에 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿