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

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

Barbara Streisand
풀어 주다: 2024-12-17 12:48:26
원래의
370명이 탐색했습니다.

How to Efficiently Convert Database Rows to Structs in Go?

데이터베이스 검색을 위한 행-구조체 변환

구조화된 데이터가 있는 데이터베이스 액세스 시나리오에서는 데이터베이스 행 데이터를 해당 구조체로 변환하는 것이 바람직한 경우가 많습니다. 다음 사용자 구조체를 고려하십시오.

type User struct {
    Name  string
    Id    int
    Score int
}
로그인 후 복사

동일한 스키마를 가진 데이터베이스 테이블을 가정할 때 데이터베이스 행을 사용자 구조체로 직접 효율적으로 구문 분석할 수 있는 방법은 무엇입니까?

효율적인 행-구조체 변환

Go 데이터베이스/sql 패키지는 다음과 같이 유용한 예제를 제공합니다. 테스트:

func TestQuery(t *testing.T) {
    type row struct {
            age  int
            name string
    }
    rows, err := db.Query("SELECT|people|age,name|")
    got := []row{}
    for rows.Next() {
            var r row
            err = rows.Scan(&r.age, &r.name)
            got = append(got, r)
    }
}

func TestQueryRow(t *testing.T) {
    var row struct {
            age  int
            name string
    }
    err = db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&row.age, &row.name)
}
로그인 후 복사

이 원칙을 특정 사례에 적용하면 다음과 같이 행을 사용자 구조체로 변환할 수 있습니다.

var row struct {
    age  int
    name string
}
err = db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&row.age, &row.name)
로그인 후 복사

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

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