Home  >  Article  >  Backend Development  >  Go language database connection guide: guide you step by step to perform database operations

Go language database connection guide: guide you step by step to perform database operations

WBOY
WBOYOriginal
2024-01-23 08:33:19479browse

Go language database connection guide: guide you step by step to perform database operations

Go language is a relatively beginner-friendly programming language that is concise, efficient and easy to learn. As a developer, connecting and operating with databases is an essential part of our daily work. In this article, I will show you how to connect to a database using Go language and provide some specific code examples.

First, we need to import the database driver of Go language. Currently, Go language supports a variety of databases, such as MySQL, SQLite, PostgreSQL, etc. You can choose the appropriate driver based on your needs. In this article, we take MySQL as an example.

First, we need to import the MySQL driver package into the Go language project. You can add the following code in the go.mod file:

require github.com/go-sql-driver/mysql v1.7.0

Then, we can establish a connection with the MySQL database through the following code:

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

func main() {
    // 数据库连接信息
    username := "root"
    password := "123456"
    host := "127.0.0.1"
    port := "3306"
    database := "example"
    
    // 建立数据库连接
    connectionString := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=True&loc=Local",
        username, password, host, port, database)
    db, err := sql.Open("mysql", connectionString)
    if err != nil {
        log.Fatal(err)
    }

    defer db.Close()
}

In the above code, we used database/sql package and github.com/go-sql-driver/mysql package. sql.Open()The function is used to establish a connection with the MySQL database. The first parameter is the driver name and the second parameter is the connection string. If an error occurs when connecting to the database, we will use the log.Fatal() function to print the error message and exit the program.

Once the connection to the database is successfully established, we can perform various database operations. The following are some common database operation examples:

  1. Query data:
rows, err := db.Query("SELECT * 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.Println(id, name)
}
  1. Insert data:
stmt, err := db.Prepare("INSERT INTO users (name) VALUES (?)")
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()

res, err := stmt.Exec("John")
if err != nil {
    log.Fatal(err)
}

lastID, err := res.LastInsertId()
if err != nil {
    log.Fatal(err)
}
fmt.Println("Inserted ID:", lastID)
  1. Update data:
stmt, err := db.Prepare("UPDATE users SET name = ? WHERE id = ?")
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()

res, err := stmt.Exec("John Doe", 1)
if err != nil {
    log.Fatal(err)
}

affectedRows, err := res.RowsAffected()
if err != nil {
    log.Fatal(err)
}
fmt.Println("Affected Rows:", affectedRows)
  1. Delete data:
stmt, err := db.Prepare("DELETE FROM users WHERE id = ?")
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()

res, err := stmt.Exec(1)
if err != nil {
    log.Fatal(err)
}

affectedRows, err := res.RowsAffected()
if err != nil {
    log.Fatal(err)
}
fmt.Println("Affected Rows:", affectedRows)

The above codes are just some basic database operation examples. In actual development, you may need more complex queries and transaction processing. However, through the above examples, you have already understood how to use Go language to connect to the database and perform some common database operations.

To summarize, this article introduces in detail how to use Go language to connect to the MySQL database and gives some specific code examples. I hope this will help you connect and operate with the database in Go language development. If you have any questions or confusion, you can leave a message below and I will try my best to answer it. I wish you a happy learning and write elegant and efficient Go language code!

The above is the detailed content of Go language database connection guide: guide you step by step to perform database operations. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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