>백엔드 개발 >Golang >Go에서 데이터베이스 행을 맵으로 효율적으로 변환하는 방법은 무엇입니까?

Go에서 데이터베이스 행을 맵으로 효율적으로 변환하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-14 16:11:12931검색

How to Efficiently Convert Database Rows to Maps in Go?

database/sql을 사용하여 Go에서 데이터베이스 행을 맵으로 변환하는 방법

데이터베이스 작업 시 데이터를 검색하고 Go 애플리케이션에서 쉽게 조작할 수 있는 형식으로 변환하세요. 일반적인 접근 방식 중 하나는 결과 행을 맵 조각으로 변환하는 것입니다. 그러나 데이터베이스/sql Rows.Scan 함수에는 쿼리에서 반환된 열과 일치하는 특정 수의 매개 변수가 필요합니다.

sqlx를 사용하여 행에서 맵 만들기

데이터베이스/sql 패키지는 행을 맵 조각으로 변환하는 직접적인 지원을 제공하지 않지만 sqlx 패키지를 활용하여 process:

import "github.com/jmoiron/sqlx"

db := sqlx.Open("postgres", "user=postgres password=mypassword host=localhost port=5432 dbname=mydb")

places := []Place{}
err := db.Select(&places, "SELECT * FROM place ORDER BY telcode ASC")
if err != nil {
    fmt.Printf(err)
    return
}

이 예에서는 sqlx를 사용하여 장소 테이블을 쿼리하고 결과를 장소 구조체 조각에 저장합니다. 대신 []Place{}를 []map[string]interface{}로 대체하여 지도 조각을 생성할 수 있습니다.

참고: 가능할 때마다 구조체를 사용하는 것이 좋습니다. 유형 안전성을 제공하고 오류가 발생하기 쉬운 유형 어설션의 필요성을 제거합니다. 그러나 데이터베이스 구조를 모르거나 동적 데이터로 작업해야 하는 경우 유연성을 위해 맵 조각을 사용할 수 있습니다.

위 내용은 Go에서 데이터베이스 행을 맵으로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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