ホームページ  >  記事  >  バックエンド開発  >  Go 言語でデータベース関数を学習し、MySQL データに対する追加、削除、変更、クエリ操作を実装します。

Go 言語でデータベース関数を学習し、MySQL データに対する追加、削除、変更、クエリ操作を実装します。

WBOY
WBOYオリジナル
2023-07-30 15:45:191195ブラウズ

Go 言語でデータベース機能を学習し、MySQL データの追加、削除、変更、クエリ操作を実装します

Go 言語は効率的で簡潔かつ高効率なプログラミング言語であり、データベースはデータを管理する重要なツールです。 Go 言語には多数のデータベース ドライバーがあり、最もよく使用されるものの 1 つは MySQL です。この記事では、Go 言語でデータベース関数を学習する方法を紹介し、コード例を使用して MySQL データの追加、削除、変更、クエリ操作を実装する方法を示します。

学習を開始する前に、Go 言語と MySQL がインストールされていること、および MySQL ドライバーがインポートされていることを確認する必要があります。次のコマンドを使用して、MySQL ドライバーをインストールできます:

go get -u github.com/go-sql-driver/mysql

次に、「db_test」という名前のデータベースを作成し、その中に「users」という名前のデータ テーブルを作成して、追加を示します。削除、変更、および動作確認。次のコードを使用して、データベースとデータ テーブルを作成できます。

package main

import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/")
    if err != nil {
        panic(err.Error())
    }

    defer db.Close()

    _, err = db.Exec("CREATE DATABASE IF NOT EXISTS db_test")
    if err != nil {
        panic(err.Error())
    }

    _, err = db.Exec("USE db_test")
    if err != nil {
        panic(err.Error())
    }

    _, err = db.Exec("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20))")
    if err != nil {
        panic(err.Error())
    }

    fmt.Println("Database and table created successfully!")
}

上記のコードを実行して、MySQL に「db_test」という名前のデータベースと「users」という名前のデータ テーブルを作成します。

次に、追加、削除、変更、確認の操作を実装します。まずはデータを挿入する機能を実装します。これは、次のコードを使用して実現できます:

func insertUser(db *sql.DB, name string) {
    stmt, err := db.Prepare("INSERT INTO users(name) VALUES(?)")
    if err != nil {
        panic(err.Error())
    }

    _, err = stmt.Exec(name)
    if err != nil {
        panic(err.Error())
    }

    fmt.Println("User inserted successfully!")
}

次に、データを削除する関数を実装します。これは、次のコードを使用して実現できます。

func deleteUser(db *sql.DB, id int) {
    stmt, err := db.Prepare("DELETE FROM users WHERE id = ?")
    if err != nil {
        panic(err.Error())
    }

    _, err = stmt.Exec(id)
    if err != nil {
        panic(err.Error())
    }

    fmt.Println("User deleted successfully!")
}

次に、データを更新する関数を実装します。これは、次のコードを使用して実現できます。

func updateUser(db *sql.DB, id int, name string) {
    stmt, err := db.Prepare("UPDATE users SET name = ? WHERE id = ?")
    if err != nil {
        panic(err.Error())
    }

    _, err = stmt.Exec(name, id)
    if err != nil {
        panic(err.Error())
    }

    fmt.Println("User updated successfully!")
}

最後に、データをクエリする関数を実装します。これは、次のコードを使用して実現できます。

func queryUsers(db *sql.DB) {
    rows, err := db.Query("SELECT * FROM users")
    if err != nil {
        panic(err.Error())
    }

    defer rows.Close()

    var id int
    var name string

    fmt.Println("Users:")
    for rows.Next() {
        err := rows.Scan(&id, &name)
        if err != nil {
            panic(err.Error())
        }

        fmt.Printf("ID: %d, Name: %s
", id, name)
    }
}

ここで、上記の関数を完全な例に統合し、次のようにテストできます。

package main

import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql"
)

func insertUser(db *sql.DB, name string) {
    stmt, err := db.Prepare("INSERT INTO users(name) VALUES(?)")
    if err != nil {
        panic(err.Error())
    }

    _, err = stmt.Exec(name)
    if err != nil {
        panic(err.Error())
    }

    fmt.Println("User inserted successfully!")
}

func deleteUser(db *sql.DB, id int) {
    stmt, err := db.Prepare("DELETE FROM users WHERE id = ?")
    if err != nil {
        panic(err.Error())
    }

    _, err = stmt.Exec(id)
    if err != nil {
        panic(err.Error())
    }

    fmt.Println("User deleted successfully!")
}

func updateUser(db *sql.DB, id int, name string) {
    stmt, err := db.Prepare("UPDATE users SET name = ? WHERE id = ?")
    if err != nil {
        panic(err.Error())
    }

    _, err = stmt.Exec(name, id)
    if err != nil {
        panic(err.Error())
    }

    fmt.Println("User updated successfully!")
}

func queryUsers(db *sql.DB) {
    rows, err := db.Query("SELECT * FROM users")
    if err != nil {
        panic(err.Error())
    }

    defer rows.Close()

    var id int
    var name string

    fmt.Println("Users:")
    for rows.Next() {
        err := rows.Scan(&id, &name)
        if err != nil {
            panic(err.Error())
        }

        fmt.Printf("ID: %d, Name: %s
", id, name)
    }
}

func main() {
    db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/db_test")
    if err != nil {
        panic(err.Error())
    }

    defer db.Close()

    insertUser(db, "Alice")
    insertUser(db, "Bob")
    insertUser(db, "Charlie")

    queryUsers(db)

    deleteUser(db, 2)

    queryUsers(db)

    updateUser(db, 1, "Alex")

    queryUsers(db)
}

上記のコードを実行して、追加、削除を実行します。 、MySQL データを変更およびクエリします。 Go言語でデータベース機能を学ぶことで、MySQLデータを簡単に操作でき、さまざまな機能要件を実現できます。この記事で提供されるコード例を通じて、読者は Go 言語と MySQL データベースの使用をより深く理解し、使いこなすことができると思います。

以上がGo 言語でデータベース関数を学習し、MySQL データに対する追加、削除、変更、クエリ操作を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。