Home > Database > Mysql Tutorial > How to use Go language for simple MySQL database technical support?

How to use Go language for simple MySQL database technical support?

WBOY
Release: 2023-06-17 08:07:05
Original
950 people have browsed it

MySQL is a popular relational database that is widely used in large websites and applications. For Go language developers, using MySQL for data storage is a very common requirement. In this article, we will explore how to use Go language for simple MySQL database technical support.

1. Install the MySQL driver

Before using Go language for MySQL database technical support, we need to install the MySQL driver first. Currently, there are many MySQL drivers supported by the Go language, the most commonly used of which is the official driver "go-sql-driver/mysql".

We can install "go-sql-driver/mysql" in the command line through the following command:

go get -u “github.com/go-sql-driver/mysql”
Copy after login

2. Connect to the MySQL database

Before using the MySQL database, We need to establish a connection to the MySQL database. Below is a simple sample program that can establish a connection to a MySQL database:

package main

import (
    "database/sql"
    "fmt"
    "log"

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

func main() {
    db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/testdb")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    err = db.Ping()
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("Successfully connected to database.")
}
Copy after login

In this example, we use the "sql.Open()" function to establish a connection to the MySQL database. This function accepts two parameters: the first parameter specifies the MySQL driver type to be used, and the second parameter is the connection string for the MySQL database. The connection string includes username, password, host and port information, and database name.

Please note that we also called the "db.Ping()" function to test whether the connection to the database is valid. If the connection is invalid, an error will be thrown. Finally, we use the "defer" statement to close the connection to the database.

3. Execute MySQL query

Executing MySQL query in Go language is very similar to executing other database queries. Below is a query example:

package main

import (
    "database/sql"
    "fmt"
    "log"

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

func main() {
    db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/testdb")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    rows, err := db.Query("SELECT id, name FROM users")
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()

    for rows.Next() {
        var id int
        var name string
        err := rows.Scan(&id, &name)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Printf("ID: %d, Name: %s
", id, name)
    }

    err = rows.Err()
    if err != nil {
        log.Fatal(err)
    }
}
Copy after login

In this example, we use the "db.Query()" function to execute a MySQL query. The query statement is "SELECT id, name FROM users", which means to obtain the data of the "id" and "name" columns from the "users" table. We then iterate over the result set using the "rows.Next()" function and read the data from the result set into variables using the "rows.Scan()" function.

After the query is completed, we need to close the query result set and check if there are any errors. If an error occurs, here we use the "defer" statement to close the result set and database connection, avoiding the need to explicitly close them in the code.

4. Use precompiled statements

Precompiled statements can improve the performance of MySQL queries by reducing the compilation time that must occur on the database server. We can create prepared statements that include a list of parameters related to the query by using the "db.Prepare()" function.

The following is an example of using a precompiled query:

package main

import (
    "database/sql"
    "fmt"
    "log"

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

func main() {
    db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/testdb")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    stmt, err := db.Prepare("SELECT id, name FROM users WHERE id > ?")
    if err != nil {
        log.Fatal(err)
    }
    defer stmt.Close()

    rows, err := stmt.Query(1)
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()

    for rows.Next() {
        var id int
        var name string
        err := rows.Scan(&id, &name)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Printf("ID: %d, Name: %s
", id, name)
    }

    err = rows.Err()
    if err != nil {
        log.Fatal(err)
    }
}
Copy after login

In this example, we use the "db.Prepare()" function to create a precompiled query, which specifies a parameter ("id >?"). We then execute the query using the "stmt.Query()" function and pass the parameter values ​​to it. We then iterate over the result set in the same way as before and close the prepared statement using "stmt.Close()".

In short, using Go language for MySQL database technical support can greatly simplify development work. With a simple connection step, you can easily execute MySQL queries and use precompiled statements for high-performance queries. We hope this article can provide you with a useful guide to make it easier to use Go language to interact with MySQL databases in your daily work.

The above is the detailed content of How to use Go language for simple MySQL database technical support?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template