>백엔드 개발 >Golang >Golang ORM 도구를 사용하여 데이터베이스와 상호 작용하는 방법은 무엇입니까?

Golang ORM 도구를 사용하여 데이터베이스와 상호 작용하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-06-01 14:16:561038검색

GORM ORM 도구를 사용하여 데이터베이스와 상호 작용하는 것은 설치 및 초기화(1), 모델 정의(2), 매핑 설정(3), 레코드 생성(4), 레코드 읽기(5), 기록 업데이트(6), 기록 삭제(7), 거래 처리(8) 및 ORM(객체 관계형 매핑)에 대한 개념 Go آسان می کند.

如何使用 Golang ORM 工具与数据库交互?

Golang ORM 도구를 사용하여 데이터베이스와 상호 작용

소개

ORM(객체 관계형 매핑) 도구를 사용하면 단순화할 수 있습니다. 관계형 데이터베이스 간의 상호 작용을 지원하는 Golang 애플리케이션. 이를 통해 개발자는 개체와 데이터베이스 테이블 간의 매핑을 설정하여 데이터베이스 레코드를 쉽게 생성, 읽기, 업데이트 및 삭제할 수 있습니다.

GORM ORM

GORM은 Golang에서 널리 사용되는 ORM 도구로, 풍부한 기능과 직관적인 API를 제공합니다. GORM을 사용하여 데이터베이스와 상호 작용하는 방법은 다음과 같습니다.

설치 및 초기화

import (
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/mysql"
)

// 创建一个数据库连接
db, err := gorm.Open("mysql", "user:password@/database_name")

if err != nil {
    // 处理错误
}

모델 정의

데이터베이스 테이블에 해당하는 구조 만들기:

type Product struct {
    ID    int    `gorm:"primary_key"`
    Name  string
    Price float64
}

매핑 작성

gorm.Model을 사용하여 모델 구조 본문을 표시하고 데이터베이스 테이블과의 매핑 설정:

func init() {
    db.AutoMigrate(&Product{})
}

Create Record

p := Product{
    Name:  "Apple iPhone 13",
    Price: 999.99,
}

db.Create(&p)

Read Record

// 读取所有记录
products := []Product{}
db.Find(&products)

// 根据主键查找记录
var p Product
db.First(&p, 1)

Update Record

p.Price = 1099.99
db.Save(&p)

Delete Record

db.Delete(&p)

Transactionprocessing

트랜잭션을 사용하면 여러 데이터베이스 작업의 동시 성공 또는 실패를 보장할 수 있습니다.

// 开启一个事务
tx := db.Begin()

// 执行多个操作
p.Price = 1199.99
if err := db.Save(&p).Error; err != nil {
    // 出错时回滚事务
    tx.Rollback()
    return err
}

// 提交事务
if err := tx.Commit().Error; err != nil {
    // 出错时回滚事务
    tx.Rollback()
    return err
}

실용 사례

간단한 CRUD(생성, 읽기, 업데이트, 삭제) 애플리케이션 만들기:

package main

func main() {
    // 初始化数据库连接
    db, _ := gorm.Open("mysql", "user:password@/database_name")

    // 创建一个产品结构体
    type Product struct {
        ID    int    `gorm:"primary_key"`
        Name  string
        Price float64
    }

    // 迁移数据库表
    db.AutoMigrate(&Product{})

    // 创建一个产品
    p := Product{
        Name:  "iPhone 14",
        Price: 999.99,
    }
    db.Create(&p)

    // 读取所有产品
    products := []Product{}
    db.Find(&products)

    // 更新产品价格
    p.Price = 1099.99
    db.Save(&p)

    // 删除产品
    db.Delete(&Product{}, p.ID)
}

GORM을 사용하면 데이터베이스와의 상호 작용을 단순화할 수 있습니다. , Golang ORM 도구의 강력한 기능을 보여줍니다.

위 내용은 Golang ORM 도구를 사용하여 데이터베이스와 상호 작용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.