Home >Backend Development >Golang >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:
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) }
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)
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)
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!