GORM 및 MySQL을 사용하여 사용자 정의 Go Set 데이터 유형을 유지하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-19 20:27:03
원래의
376명이 탐색했습니다.

How to Persist a Custom Go Set Data Type with GORM and MySQL?

GORM Go를 사용하여 사용자 정의 세트 데이터 유형 유지

제공된 코드는 사용자 정의 세트 데이터 유형 threadUnsafeSet 및 그에 수반되는 메소드를 정의합니다. MySQL용 GORM 라이브러리를 사용하여 이 데이터 유형을 유지하려면 Scanner 및 Driver Valuer 인터페이스를 구현해야 합니다.

Scanner 및 Driver Valuer 인터페이스 구현

Scanner 인터페이스는 데이터베이스 값을 Go 값으로 스캔하는 데 사용되는 반면 Driver Valuer 인터페이스는 Go 값을 데이터베이스 드라이버 값으로 변환하는 데 사용됩니다. threadUnsafeSet 유형의 경우 이는 사용자 정의 세트를 데이터베이스 호환 형식으로 또는 그 반대로 변환하는 메소드를 구현하는 것을 의미합니다.

구현 예는 다음과 같습니다.

func (data *threadUnsafeSet) Value() (driver.Value, error) {
    return data.ConvertJSONToString(), nil
}

func (data *threadUnsafeSet) Scan(value interface{}) error {
    *data = data.ConvertStringToJson(valueString)
}
로그인 후 복사

이 예에서는 , ConvertJSONToString 및 ConvertStringToJson 메소드는 사용자 정의 세트를 JSON 문자열로 변환한 후 데이터베이스에 저장할 수 있습니다.

이러한 인터페이스를 구현함으로써 GORM은 이제 다음에서 threadUnsafeSet 유형을 저장하고 검색하는 방법을 이해할 수 있습니다.

참고: 더미 ConvertJSONToString 및 ConvertStringToJson 메서드 호출을 특정 데이터 유형 변환 요구 사항과 일치하는 실제 구현으로 바꿔야 합니다.

위 내용은 GORM 및 MySQL을 사용하여 사용자 정의 Go Set 데이터 유형을 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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