golang에서 mysql 데이터베이스를 탐색하는 방법

王林
풀어 주다: 2023-06-03 12:55:26
앞으로
1197명이 탐색했습니다.

1. MySQL 데이터베이스에 연결

MySQL 데이터베이스를 탐색하기 전에 먼저 MySQL 데이터베이스와의 연결을 설정해야 합니다. Golang은 MySQL 데이터베이스에 보다 편리하게 연결할 수 있도록 Database/sql 패키지를 제공합니다. 먼저 이 패키지를 소개해야 합니다.

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)
로그인 후 복사

MySQL 데이터베이스에 연결하려면 데이터베이스 연결 주소, 데이터베이스 이름, 계정 번호, 비밀번호 및 기타 정보를 지정해야 합니다. 샘플 코드는 다음과 같습니다.

db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database_name")
if err != nil {
    fmt.Println("连接数据库出错:", err)
    return
}
defer db.Close()
로그인 후 복사

그 중 "mysql"은 드라이버 이름, 연결 주소는 "127.0.0.1:3306", 데이터베이스 이름은 "database_name", 계정과 비밀번호는 "user"입니다. 그리고 "비밀번호".

데이터베이스에 연결한 후 함수 끝에서 데이터베이스 연결을 닫아야 하는데, 이는 위 코드와 같이 defer 문을 통해 수행할 수 있습니다.

2. 데이터 쿼리

MySQL 데이터베이스에 연결한 후 데이터베이스를 쿼리할 수 있습니다. Golang에서는 쿼리 작업을 수행하는 방법이 두 가지가 있습니다. 하나는 단일 행 쿼리에 쿼리 함수를 사용하는 것이고, 다른 하나는 다중 행 쿼리에 queryRows 함수를 사용하는 것입니다.

  1. 단일 행 쿼리

단일 행 쿼리는 데이터베이스 테이블의 데이터 한 행을 쿼리하는 것을 말합니다. 샘플 코드는 다음과 같습니다.

row := db.QueryRow("SELECT * FROM table_name WHERE id=?", 1)
if err != nil {
    fmt.Println("查询出错:", err)
    return
}
var id int
var name string
var age int
var address string
err = row.Scan(&id, &name, &age, &address)
if err != nil {
    fmt.Println("查询结果获取失败:", err)
    return
}
fmt.Println(id, name, age, address)
로그인 후 복사

위 코드에서는 QueryRow 함수를 사용하여 쿼리합니다. 여기서 "?"는 쿼리 조건의 값을 나타내는 자리 표시자입니다(이 경우 id=1). Scan 함수를 사용하여 각 필드의 값을 가져오고 쿼리 결과에서 데이터 행을 반환할 수 있습니다. 마지막으로 쿼리 결과를 출력합니다.

  1. 다중 행 쿼리

다중 행 쿼리는 데이터베이스 테이블의 여러 데이터 행을 쿼리하는 것을 의미합니다. 샘플 코드는 다음과 같습니다.

rows, err := db.Query("SELECT * FROM table_name WHERE age > ?", 18)
if err != nil {
    fmt.Println("查询出错:", err)
    return
}
defer rows.Close()
for rows.Next() {
    var id int
    var name string
    var age int
    var address string
    err = rows.Scan(&id, &name, &age, &address)
    if err != nil {
        fmt.Println("查询结果获取失败:", err)
        return
    }
    fmt.Println(id, name, age, address)
}
로그인 후 복사

위 코드에서 쿼리 함수를 사용하여 쿼리합니다. 여기서 "?"는 쿼리 조건의 값(이 경우 age>18)을 나타내는 자리 표시자입니다. for 루프를 사용하여 쿼리 결과에 있는 여러 데이터 행을 탐색하고 Scan 함수를 사용하여 각 필드의 값을 얻을 수 있습니다. 마지막으로 쿼리 결과를 출력합니다.

3. MySQL 데이터 탐색

데이터베이스 테이블의 데이터를 쿼리한 후 for 루프를 통해 데이터를 탐색하고 처리할 수 있습니다. 샘플 코드는 다음과 같습니다.

rows, err := db.Query("SELECT * FROM table_name")
if err != nil {
    fmt.Println("查询出错:", err)
    return
}
defer rows.Close()
for rows.Next() {
    var id int
    var name string
    var age int
    var address string
    err = rows.Scan(&id, &name, &age, &address)
    if err != nil {
        fmt.Println("查询结果获取失败:", err)
        return
    }
    fmt.Println(id, name, age, address)
    // 在此处可以对获取到的数据进行处理
}
로그인 후 복사

위 코드에서는 먼저 Query 함수를 사용하여 데이터베이스 테이블의 모든 데이터를 쿼리한 다음 for 루프를 통해 데이터의 각 행을 순회한 후 다음을 통해 각 필드의 값을 얻습니다. 스캔 기능을 수행하고 최종적으로 데이터 획득이 처리됩니다. 쿼리 결과를 닫으려면 닫기 기능을 사용해야 합니다. 처리가 완료되면 쿼리 결과는 더 이상 필요하지 않습니다.

위 내용은 golang에서 mysql 데이터베이스를 탐색하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿