hoony's web study

728x90
반응형


1. 설명

Go와 함께 데이터베이스 작업을 하다보면, string, time 등의 데이터로 인한

INSERT, UPDATE 와 같은 작업이

이루어 질 때, NULL 셋팅이 안되고 공백문자로 데이터가 들어가는 문제가 있습니다. 

데이터 작업을 하다보면 오히려, 과한 공백문자 데이터로 인해 어려움을 겪을때가 있는데,

이에따라, 공백처리를 일일히 해주기엔 번거로움이 있어 공통함수로 따로 빼두었습니다.

더 좋은 방법이 나오길 기대해봅니다.

2. 예제

package common

import (
	"database/sql"
	"time"
)

/**
 * DB 처리 시, Null 이 아닌 공백값이 입력되는 것을 해결하기 위한 함수들
 */

func CalNullString(s string) sql.NullString {
	if len(s) == 0 {
		return sql.NullString{}
	} else {
		return sql.NullString{
			String: s,
			Valid:  true,
		}
	}
}

func CalNullDate(t time.Time) sql.NullTime {
	if t.IsZero() {
		return sql.NullTime{}
	} else {
		return sql.NullTime{
			Time:  t,
			Valid: true,
		}
	}
}

func CalNullInt32(i int) sql.NullInt32 {
	if i == 0 {
		return sql.NullInt32{}
	} else {
		return sql.NullInt32{
			Int32: int32(i),
			Valid: true,
		}
	}
}

func CalNullInt16(i int) sql.NullInt16 {
	if i == 0 {
		return sql.NullInt16{}
	} else {
		return sql.NullInt16{
			Int16: int16(i),
			Valid: true,
		}
	}
}

 

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading