>  기사  >  백엔드 개발  >  Golang GORM 쿼리 연산의 상세 예시

Golang GORM 쿼리 연산의 상세 예시

PHPz
PHPz원래의
2023-04-03 11:50:423715검색

Golang은 비교적 새로운 프로그래밍 언어로 인해 웹 애플리케이션 개발이 더 쉬워졌습니다. Golang의 우수성은 동시성 메커니즘과 간결한 언어 구문에 있습니다. GORM은 Golang의 ORM(Object Relational Mapping) 라이브러리로, 다른 언어의 ORM과 유사하며 객체 지향 데이터베이스 작업을 구현할 수 있어 데이터베이스 추가, 삭제, 수정 및 쿼리를 더 간단하고 명확하게 할 수 있습니다. 이번 글에서는 주로 Golang GORM의 쿼리 연산을 소개하겠습니다.

1. 소개

쿼리 작업에 Golang GORM을 사용하는 경우 먼저 GORM 라이브러리를 가져온 다음 해당 데이터베이스 정보를 설정해야 합니다. 예:

import (
    "gorm.io/gorm"
    "gorm.io/driver/mysql"
)

dsn := "root:password@tcp(127.0.0.1:3306)/database?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

여기에서는 mysql 데이터베이스를 사용하고 해당 데이터베이스 연결을 설정합니다. 정보. GORM 라이브러리를 가져온 후 해당 데이터 구조를 정의해야 합니다. 예:

type User struct {
  ID        int
  Name      string
  Age       int
  Email     string
  CreatedAt time.Time
}

여기서 ID, 이름, 나이, 이메일 및 CreatedAt와 같은 필드를 포함하는 사용자 구조를 정의합니다. 여기서 ID는 자동으로 증가되는 기본 키입니다. 필드 .

2. 쿼리 방법

  1. 단일 레코드 찾기

Golang GORM에서는 Find 메서드를 사용하여 레코드를 쿼리할 수 있습니다. 예:

var user User
db.Find(&user, 1) // 查询主键为1的记录

여기서 사용자 변수를 정의하고 Find 메서드를 사용하여 쿼리합니다. 기본 키는 1개의 레코드로, 쿼리된 데이터는 사용자 변수에 저장됩니다.

  1. 여러 레코드 찾기

Golang GORM에서는 Find 메서드를 사용하여 여러 레코드를 쿼리할 수 있습니다. 예를 들면 다음과 같습니다.

var users []User
db.Find(&users) // 查询所有的记录

여기에서는 사용자 슬라이스 변수를 정의하고 Find 메서드를 사용하여 모든 레코드를 쿼리합니다. 쿼리된 모든 데이터는 사용자 배열에 저장됩니다.

  1. 조건부 쿼리

Golang GORM에서는 Where 메서드를 사용하여 조건부 쿼리를 수행할 수 있습니다. 예:

var users []User
db.Where("age > ?", 18).Find(&users) // 查询年龄大于18的所有记录

여기서는 Where 메서드를 통해 18세보다 나이가 많은 모든 레코드를 쿼리하고 사용자 폴더에 저장합니다. 슬라이스 변수.

  1. Fuzzy query

Golang GORM에서는 Like 메소드를 사용하여 퍼지 쿼리를 수행할 수 있습니다. 예:

var users []User
db.Where("name LIKE ?", "%john%").Find(&users) // 查询名字中包含“john”的记录

여기서 Where 메소드를 통해 퍼지 쿼리를 수행하고 이름에 "john"이 포함된 레코드를 쿼리합니다. , 사용자 슬라이스 변수에 저장합니다.

  1. IN 조건부 쿼리

Golang GORM에서는 IN 메서드를 사용하여 IN 조건부 쿼리를 수행할 수 있습니다. 예:

var users []User
db.Where("name IN ?", []string{"john", "mary", "bob"}).Find(&users) // 查询名字为john、mary、bob的所有记录

여기에서는 Where 메서드를 사용하여 IN 조건부 쿼리를 수행하여 john의 모든 이름을 쿼리합니다. , mary 및 bob 사용자 슬라이스 변수에 기록 및 저장됩니다.

  1. BETWEEN 조건부 쿼리

Golang GORM에서는 Between 메서드를 사용하여 BETWEEN 조건부 쿼리를 수행할 수 있습니다. 예:

var users []User
db.Where("age BETWEEN ? AND ?", 18, 30).Find(&users) // 查询年龄在18到30岁之间的所有记录

여기에서는 Where 메서드를 사용하여 BETWEEN 조건부 쿼리를 수행하여 18세에서 18세 사이의 사용자를 쿼리합니다. 30세 모든 기록은 사용자 슬라이스 변수에 저장됩니다.

3. 요약

위는 Golang GORM의 쿼리 연산 방법입니다. Golang GORM의 쿼리 연산을 통해 Golang 기반의 ORM 연산을 쉽게 구현할 수 있어 데이터베이스의 추가, 삭제, 수정 및 쿼리를 더욱 간단하고 명확하게 할 수 있습니다. 물론 실제 적용에서는 여전히 특정 비즈니스 요구에 따라 유연하게 적용해야 합니다.

위 내용은 Golang GORM 쿼리 연산의 상세 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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