> 백엔드 개발 > Golang > Golang을 사용하여 기본 SQL 쿼리를 실행하는 방법은 무엇입니까?

Golang을 사용하여 기본 SQL 쿼리를 실행하는 방법은 무엇입니까?

WBOY
풀어 주다: 2024-06-01 10:00:58
원래의
625명이 탐색했습니다.

Go에서 기본 SQL 쿼리를 실행하는 방법: 필요한 패키지(예: 데이터베이스/sql 및 데이터베이스 드라이버)를 가져옵니다. 데이터베이스 연결을 엽니다. db.Prepare 메서드를 사용하여 SQL 문을 준비합니다. stmt.Query 메서드를 사용하여 쿼리를 수행하고 동적 값을 제공합니다. 행.다음 및 행.스캔을 사용하여 쿼리 결과를 반복합니다. 리소스를 해제하려면 데이터베이스 연결을 닫습니다.

如何使用 Golang 执行原生 SQL 查询?

Golang에서 기본 SQL 쿼리를 실행하는 방법은 무엇입니까?

Golang은 기본 SQL 쿼리를 사용하여 관계형 데이터베이스와 상호 작용할 수 있는 강력한 SQL 데이터베이스 패키지를 제공합니다. 이 튜토리얼에서는 Golang을 사용하여 기본 SQL 쿼리를 실행하는 방법을 안내하고 실제 예제를 제공합니다.

필요한 패키지 가져오기

먼저 필요한 패키지를 가져와야 합니다.

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql" // MySQL 驱动程序
)
로그인 후 복사

참고: 데이터베이스마다 자체 드라이버가 필요합니다. 지원되는 드라이버 목록은 [godoc](https://godoc.org/database/sql/driver)를 참조하세요.

데이터베이스 연결 열기

다음으로 데이터베이스 연결을 엽니다.

db, err := sql.Open("mysql", "user:password@tcp(host:port)/database")
if err != nil {
    log.Fatal(err)
}
로그인 후 복사

user, password, host를 추가하세요. , < code>port 및 database를 해당 값으로 바꿉니다. user, password, host, portdatabase替换为相应的值。

准备 SQL 语句

要准备 SQL 查询,请使用 Prepare 方法:

stmt, err := db.Prepare("SELECT * FROM users WHERE name = ?")
if err != nil {
    log.Fatal(err)
}
로그인 후 복사

这将创建一个预编译的 SQL 语句,用于稍后执行。?占位符表示将在执行期间替换的动态值。

执行 SQL 查询

要使用指定的动态值执行查询,请使用 Query 方法:

rows, err := stmt.Query("John")
if err != nil {
    log.Fatal(err)
}
로그인 후 복사

这将返回一个 Rows 对象,它包含查询结果。

处理查询结果

要遍历查询结果,请使用 Scan

SQL 문 준비

SQL 쿼리를 준비하려면 Prepare 메서드를 사용하세요.

for rows.Next() {
    var id int
    var name string
    if err := rows.Scan(&id, &name); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("ID: %d, Name: %s\n", id, name)
}
로그인 후 복사

이렇게 하면 나중에 실행할 수 있도록 미리 컴파일된 SQL 문이 생성됩니다. ? 자리 표시자는 실행 중에 대체될 동적 값을 나타냅니다.

SQL 쿼리 실행

지정된 동적 값으로 쿼리를 실행하려면 Query 메서드를 사용하세요. 🎜
db.Close()
로그인 후 복사
🎜이렇게 하면 쿼리가 포함된 Rows 개체가 반환됩니다. 결과. 🎜🎜🎜쿼리 결과 처리🎜🎜🎜쿼리 결과를 반복하려면 Scan 메서드를 사용하세요. 🎜
package main

import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql" // MySQL 驱动程序
)

func main() {
    db, err := sql.Open("mysql", "user:password@tcp(host:port)/database")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    stmt, err := db.Prepare("INSERT INTO users (name) VALUES (?)")
    if err != nil {
        log.Fatal(err)
    }

    _, err = stmt.Exec("Jane")
    if err != nil {
        log.Fatal(err)
    }

    stmt, err = db.Prepare("SELECT * FROM users WHERE name = ?")
    if err != nil {
        log.Fatal(err)
    }

    rows, err := stmt.Query("Jane")
    if err != nil {
        log.Fatal(err)
    }

    for rows.Next() {
        var id int
        var name string
        if err := rows.Scan(&id, &name); err != nil {
            log.Fatal(err)
        }
        fmt.Printf("ID: %d, Name: %s\n", id, name)
    }
}
로그인 후 복사
🎜🎜데이터베이스 연결을 닫습니다. 🎜🎜🎜마지막으로 데이터베이스 연결을 닫아 리소스를 해제합니다. 🎜 rrreee🎜🎜연습 사례 🎜🎜🎜다음은 데이터베이스에 레코드를 삽입하고 얻는 방법을 보여주는 실제 사례입니다. 🎜rrreee

위 내용은 Golang을 사용하여 기본 SQL 쿼리를 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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