Golang simply implements mysql

WBOY
Release: 2023-05-15 11:45:07
Original
703 people have browsed it

It is very easy to use Golang to write programs to operate databases, and this is no exception in the MySQL database. The following will introduce to you how to simply implement MySQL operations in Golang.

First, make sure you have installed Golang and MySQL correctly, and you also need to install Go's MySQL driver. This can be easily done with the following command:

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

Before creating the Go program, we also need to create a MySQL database and a table to demonstrate how to use Golang for database operations.

Suppose we have created a database named "test_db" and it contains a table named "users". The structure of the table is as follows:

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;
Copy after login

Next, we can start writing Golang programs. The following is a simple program example that shows how to use the Golang driver to connect to the MySQL database and perform some basic query operations:

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()) } }
Copy after login

By running the above program, we can successfully connect to the MySQL database and use " SELECT" statement queries all records in the "users" table and prints the results.

In addition to queries, we can also use the Golang driver to perform other common MySQL operations such as inserts, updates, and deletes. The following is a simple program example:

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) }
Copy after login

With the above program example, we can successfully perform common MySQL operations such as insert, update, and delete.

In general, it is very simple to use the Golang driver to implement MySQL database operations. Various operations, such as query, insert, update or delete, can be easily implemented through the Golang driver.

The above is the detailed content of Golang simply implements mysql. For more information, please follow other related articles on the PHP Chinese website!

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
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!