서론
데이터베이스 조작은 프로그래밍의 기본입니다. 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를 사용하면 데이터베이스 작업이 간단하고 효율적으로 변합니다. 이 글이 여러분의 프로젝트에 도움이 되길 바랍니다.