ホームページ > バックエンド開発 > Golang > Golang は単に mysql を実装するだけです

Golang は単に mysql を実装するだけです

WBOY
リリース: 2023-05-15 11:45:07
オリジナル
781 人が閲覧しました

Golang を使用してデータベースを操作するプログラムを作成するのは非常に簡単で、これは MySQL データベースでも例外ではありません。以下では、Golang で MySQL の操作を簡単に実装する方法を紹介します。

まず、Golang と MySQL が正しくインストールされていることを確認し、Go の MySQL ドライバーもインストールする必要があります。これは、次のコマンドを使用して簡単に実行できます。

go get -u github.com/go-sql-driver/mysql
ログイン後にコピー

Go プログラムを作成する前に、データベース操作に Golang を使用する方法を示すために、MySQL データベースとテーブルを作成する必要もあります。

「test_db」という名前のデータベースを作成し、そこに「users」という名前のテーブルが含まれているとします。テーブルの構造は次のとおりです。

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `age` smallint(6) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ログイン後にコピー

次に、Golang プログラムの作成を開始できます。以下は、Golang ドライバーを使用して MySQL データベースに接続し、いくつかの基本的なクエリ操作を実行する方法を示す簡単なプログラムの例です。

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // 连接 MySQL 数据库
    db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test_db?charset=utf8mb4")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    // 执行查询操作
    rows, err := db.Query("SELECT * FROM users")
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()

    // 遍历查询结果
    for rows.Next() {
        var id int
        var name string
        var email string
        var age int
        err := rows.Scan(&id, &name, &email, &age)
        if err != nil {
            panic(err.Error())
        }
        fmt.Println(id, name, email, age)
    }

    // 检查是否存在错误
    err = rows.Err()
    if err != nil {
        panic(err.Error())
    }
}
ログイン後にコピー

上記のプログラムを実行すると、MySQL データベースに正常に接続でき、 use " SELECT" ステートメントは、 "users" テーブル内のすべてのレコードをクエリし、結果を出力します。

クエリに加えて、Golang ドライバーを使用して、挿入、更新、削除などの他の一般的な MySQL 操作を実行することもできます。以下は簡単なプログラム例です:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // 连接 MySQL 数据库
    db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test_db?charset=utf8mb4")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    // 插入一条记录
    stmt, err := db.Prepare("INSERT INTO users(name, email, age) VALUES(?, ?, ?)")
    if err != nil {
        panic(err.Error())
    }
    defer stmt.Close()

    result, err := stmt.Exec("Tom", "tom@email.com", 30)
    if err != nil {
        panic(err.Error())
    }
    lastInsertId, _ := result.LastInsertId()
    fmt.Println("新增记录的 ID:", lastInsertId)

    // 更新一条记录
    stmt, err = db.Prepare("UPDATE users SET name=?, age=? WHERE id=?")
    if err != nil {
        panic(err.Error())
    }
    defer stmt.Close()

    result, err = stmt.Exec("Jerry", 25, 1)
    if err != nil {
        panic(err.Error())
    }
    affectRow, _ := result.RowsAffected()
    fmt.Println("受影响的行数:", affectRow)

    // 删除一条记录
    stmt, err = db.Prepare("DELETE FROM users WHERE id=?")
    if err != nil {
        panic(err.Error())
    }
    defer stmt.Close()

    result, err = stmt.Exec(1)
    if err != nil {
        panic(err.Error())
    }
    affectRow, _ = result.RowsAffected()
    fmt.Println("受影响的行数:", affectRow)
}
ログイン後にコピー

上記のプログラム例では、挿入、更新、削除などの一般的な MySQL 操作を正常に実行できます。

一般に、Golang ドライバーを使用して MySQL データベース操作を実装するのは非常に簡単です。クエリ、挿入、更新、削除などのさまざまな操作は、Golang ドライバーを通じて簡単に実装できます。

以上がGolang は単に mysql を実装するだけですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート