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("User: %+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をコピーしました