go에서 sqlite3 를 사용하기 위해서는 go-sqlite3 패키지가 필요하다.
sqlite3 가 gcc를 사용한다.
Windows 환경에서 go-sqlite3 를 사용하기 위해서는
1) cgo 가 필요하고
2) cgo 를 사용하기 위해서는 gcc 가 필요하고
3) gcc 를 사용하기 위해서는 MinGW 가 필요하다.
※ cgo: go 프로그램에서 C 코드를 호출할 수 있도록 하는 go 유틸리티. c:\Go\pkg\tool\windows_amd64 폴더에 있다.
※ MinGW: MS Windows 에서 gcc 또는 clang 등의 표준 C/C++ 컴파일러를 사용할 수 있도록 환경을 제공하는 소프트웨어 도구 모음
상당히 복잡한데 이걸 또 한방에 해결해 주는 것이 있다. 바로 tdm-gcc 이다.
tdm-gcc 는 Windows 환경에 최적화 된 gcc 컴파일러이다.
다운로드는 아래 링크에서 가능하다. tdm64-gcc-9.2.0.exe 를 다운받아서 설치하자.
https://jmeubank.github.io/tdm-gcc/download
설치하고 나면 MinGW 가 같이 설치되어 있다. 시작버튼을 눌러 MinGW를 실행하자.
콘솔에서 아래 명령어로 go-sqlite3를 설치하면 된다.
[code]
$ go get github.com/mattn/go-sqlite3
[/code]
설치하고 나면 sqlite3를 사용할 수 있다.
[code]
import (
“database/sql”
// 앞에 _ (언더바)는 코드내에 명시적으로 사용하진 않지만 내부적으로 사용한다는 걸 알려 golint 등에 의해 삭제되지 않도록 한다.
_ “github.com/mattn/go-sqlite3”
)
func newConnection() *sql.DB {
database, err := sql.Open(“sqlite3”, “./test.db”)
if err != nil {
panic(err)
}
statement, _ := database.Prepare(
`CREATE TABLE IF NOT EXITS todos (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
completed BOOLEAN,
createdAt DATETIME
)`)
statement.Exec()
return database
}
[/code]