>백엔드 개발 >Golang >golang 쿼리 mysql 할당

golang 쿼리 mysql 할당

王林
王林원래의
2023-05-14 19:12:08540검색

golang은 효율적인 가비지 수집 메커니즘과 빠른 컴파일 속도로 동시 프로그래밍을 지원하는 프로그래밍 언어입니다. golang을 사용하여 웹 애플리케이션을 작성할 때 MySQL 데이터베이스와 상호 작용해야 하는 경우가 많습니다. 이 기사에서는 golang을 사용하여 mysql을 쿼리하고 결과를 변수에 할당하는 방법을 소개합니다.

먼저 golang의 MySQL 드라이버를 설치해야 합니다. 현재 일반적으로 사용되는 MySQL 드라이버에는 go-sql-driver와 mysql이라는 두 가지가 있습니다. 이번 글에서는 go-sql-driver를 사용하겠습니다.

go-sql-driver를 설치하려면 다음 명령을 사용할 수 있습니다.

go get -u github.com/go-sql-driver/mysql

설치가 완료된 후 코드에서 mysql 패키지를 가져옵니다.

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

다음으로 데이터베이스와의 연결을 설정해야 합니다. Open 함수를 사용하여 데이터베이스에 대한 연결을 열고 Close 함수를 사용하여 연결을 닫을 수 있습니다. 연결을 열 때 데이터베이스 연결 주소, 사용자 이름, 비밀번호 및 데이터베이스 이름을 지정해야 합니다.

db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/mydb")
if err != nil {
    panic(err.Error())
}
defer db.Close()

다음으로 Query 함수를 사용하여 데이터베이스에 쿼리하고 쿼리 결과를 변수에 할당할 수 있습니다. Query 함수는 쿼리 결과의 모든 행을 포함하는 Rows 유형의 개체를 반환합니다. Rows 개체는 Next, Scan 및 Columns와 같은 쿼리 결과를 탐색하는 여러 가지 방법을 제공합니다.

var name string
var age int
err = db.QueryRow("SELECT name, age FROM users WHERE id = ?", 1).Scan(&name, &age)
if err != nil {
    panic(err.Error())
}

위 코드에서는 QueryRow 함수를 사용하여 데이터베이스를 쿼리합니다. QueryRow 함수는 일치하는 모든 행이 아닌 데이터 행을 반환합니다. Scan 함수는 쿼리 결과의 각 열 값을 방금 선언한 변수 name 및 age에 할당합니다.

마지막으로 fmt 패키지를 사용하여 할당 결과를 콘솔에 출력할 수 있습니다.

fmt.Printf("Name: %s
Age: %d
", name, age)

전체 코드는 다음과 같습니다.

package main

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

func main() {
    db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/mydb")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    var name string
    var age int
    err = db.QueryRow("SELECT name, age FROM users WHERE id = ?", 1).Scan(&name, &age)
    if err != nil {
        panic(err.Error())
    }

    fmt.Printf("Name: %s
Age: %d
", name, age)
}

위는 golang을 사용하여 mysql에 쿼리하고 그 결과를 변수에 할당하는 방법입니다. 이 기술에 능숙해지면 개발자는 데이터베이스 쿼리 작업을 보다 쉽게 ​​처리하고 웹 애플리케이션의 효율성과 성능을 향상시킬 수 있습니다.

위 내용은 golang 쿼리 mysql 할당의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.