Golang과 sqlx를 사용하여 데이터 검색, 추가, 업데이트, 삭제하는 방법

서론

데이터베이스 조작은 프로그래밍의 기본입니다. Golang과 sqlx 라이브러리를 사용하여 데이터를 검색, 추가, 업데이트, 삭제하는 방법(CRUD 작업)을 이해하기 쉬운 코드 예시와 함께 설명해 드리겠습니다.


sqlx란?

sqlx는 Go의 표준 데이터베이스/SQL 패키지에 대한 확장으로, 더욱 편리하고 유연한 데이터베이스 조작을 가능하게 합니다.


데이터 검색

코드 예시 1: 단일 레코드 검색

package main

import (
    "fmt"
    "github.com/jmoiron/sqlx"
    _ "github.com/mattn/go-sqlite3"
)

type User struct {
    ID   int    `db:"id"`
    Name string `db:"name"`
}

func main() {
    db, err := sqlx.Connect("sqlite3", "yourdatabase.db")
    if err != nil {
        log.Fatalln(err)
    }

    var user User
    err = db.Get(&user, "SELECT id, name FROM users WHERE id = $1", 1)
    if err != nil {
        log.Fatalln(err)
    }

    fmt.Printf("사용자: %+v\n", user)
}

이 코드는 지정된 ID를 가진 사용자를 데이터베이스에서 검색합니다.


데이터 추가

코드 예시 2: 새 레코드 추가

package main

import (
    "github.com/jmoiron/sqlx"
    _ "github.com/mattn/go-sqlite3"
)

type User struct {
    ID   int    `db:"id"`
    Name string `db:"name"`
}

func main() {
    db, err := sqlx.Connect("sqlite3", "yourdatabase.db")
    if err != nil {
        log.Fatalln(err)
    }

    _, err = db.Exec("INSERT INTO users (name) VALUES (?)", "새 사용자")
    if err != nil {
        log.Fatalln(err)
    }
}

이 예제에서는 새 사용자를 데이터베이스에 추가합니다.


데이터 업데이트 및 삭제

코드 예시 3: 레코드 업데이트 및 삭제

package main

import (
    "github.com/jmoiron/sqlx"
    _ "github.com/mattn/go-sqlite3"
)

func main() {
    db, err := sqlx.Connect("sqlite3", "yourdatabase.db")
    if err != nil {
        log.Fatalln(err)
    }

    // 업데이트
    _, err = db.Exec("UPDATE users SET name = ? WHERE id = ?", "업데이트된 사용자", 1)
    if err != nil {
        log.Fatalln(err)
    }

    // 삭제
    _, err = db.Exec("DELETE FROM users WHERE id = ?", 1)
    if err != nil {
        log.Fatalln(err)
    }
}

이 코드는 특정 사용자의 정보를 업데이트하거나 삭제하는 방법을 보여줍니다.


결론

Golang과 sqlx를 사용하면 데이터베이스 작업이 간단하고 효율적으로 변합니다. 이 글이 여러분의 프로젝트에 도움이 되길 바랍니다.

タイトルとURLをコピーしました