windows 환경의 go 에서 sqlite3 사용하기 > IT 기술백서

IT 기술백서

직접 알아내거나 검색하기 귀찮아서 모아 둔 것

Go lang | windows 환경의 go 에서 sqlite3 사용하기

본문

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]

 

댓글 0개

등록된 댓글이 없습니다.

Menu