MySQL의 'bit' 유형을 Go로 매핑: Go 유형 선택 이해
MySQL에서 'bit' 데이터 유형은 단일 비트를 나타냅니다. 부울 상태를 나타내는 데 자주 사용되는 값입니다. Beego와 같은 ORM을 통해 MySQL과 함께 Go를 사용하는 경우 이 '비트' 유형을 매핑하기 위해 적절한 Go 유형을 선택하는 것이 중요합니다.
Java와 Go 데이터 유형 고려 사항
언급했듯이 Java는 이러한 시나리오에 'bit(1)' 유형을 활용합니다. 그러나 Go에는 기본 '비트' 유형이 없습니다. 따라서 'bit' 값을 적절하게 표현할 수 있는 Go 유형을 결정해야 합니다.
Bool 또는 Custom Type?
처음에는 '비트' 데이터의 부울 특성에 해당하는 'bool' 유형으로 이동하세요. 그러나 'bool'을 사용하면 데이터베이스와 상호 작용할 때 변환 오류가 발생할 수 있습니다.
사용자 정의 BitBool 구현
이 문제를 해결하기 위해 Go 라이브러리 'Sqlx'는 다음을 제공합니다. MySQL의 '비트' 데이터 매핑을 위해 특별히 설계된 사용자 정의 'BitBool' 유형입니다. 이 유형은 Driver.Valuer 및 sql.Scanner 인터페이스를 구현하여 부울 값을 'bit(1)' 비트 필드 간에 효과적으로 변환합니다.
Beego ORM 구현
내부 Beego ORM 구조체에서는 이제 표시된 것처럼 'Deleted' 필드에 'BitBool' 유형을 사용할 수 있습니다. 아래:
type BaseModel struct { Id string `orm:"pk";form:"id"` CreatedTime time.Time `orm:"auto_now_add;type(datetime)";form:"-"` UpdatedTime time.Time `orm:"auto_now;type(datetime)";form:"-"` Deleted BitBool `form:"-"` }
사용자 정의 'BitBool' 유형을 활용하면 데이터베이스를 변경할 필요 없이 Beego 프로젝트 내에서 'bit(1)' 데이터를 Go 'BitBool' 유형에 효과적으로 매핑할 수 있습니다. 스키마.
위 내용은 MySQL\'bit\' 유형을 이동에 매핑하는 방법: Bool 또는 사용자 정의 유형?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!