With the popularity of the Internet, more and more small businesses have started their own online businesses. The amount of data involved in these businesses is usually not very large, but for small businesses, data storage and processing is still a very important issue. MySQL database is one of the most popular databases currently used for storing and processing data, and it is also the first choice for many small businesses. This article will introduce how to use Go language to quickly develop and manage MySQL database.
Before using MySQL, we need to install MySQL first. You can find the version suitable for your device on the MySQL official website and download and install it according to your needs. After the installation is complete, some basic configuration is required, including setting the MySQL root user password and creating a new user and assigning permissions.
Go language is a relatively new programming language that is widely used in the development of Internet applications. After downloading the Go language installation package from the official website, just follow the prompts to install it. After the installation is complete, you need to set the environment variables and GOPATH path of the Go language.
In the Go language, we need to use a third-party library to connect and operate the MySQL database. Currently popular libraries include go-sql-driver/mysql and jmoiron/sqlx. To install these libraries, you can use the package management tool that comes with the Go language: go get.
Install go-sql-driver/mysql:
go get -u github.com/go-sql-driver/mysql
Install jmoiron/sqlx:
go get -u github.com/jmoiron/sqlx
Connect The MySQL database needs to specify database connection information and authentication information. Using Go language to connect to the MySQL database requires the Database/sql and go-sql-driver/mysql libraries. Please note when connecting to the MySQL database:
import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8") if err != nil { log.Fatalln(err) } defer db.Close() // 测试连接 if err := db.Ping(); err != nil { log.Fatalln(err) } // 进行操作 // ... }
The above code implements the connection to the MySQL database and the most basic test connection.
After connecting to the MySQL database, we can perform some common database operations, such as: query, insert and update, etc.
In the MySQL database, a transaction can be a set of SQL statements, which are defined as an operating unit, which can be one or more statements, which are executed as a whole. In Go language, we can use Begin, Commit and Rollback functions to implement transactions:
func transactionTx() error { tx, err := db.Begin() if err != nil { return err } defer func() { if p := recover(); p != nil { tx.Rollback() // 捕获错误回滚 } }() stmt, err := tx.Prepare("INSERT INTO users(name, age) VALUES(?, ?)") if err != nil { return err } defer stmt.Close() _, err = stmt.Exec("user1", 20) if err != nil { return err } _, err = stmt.Exec("user2", 21) if err != nil { return err } err = tx.Commit() if err != nil { return err } return nil }
In the SQL statement of Go language, use "?" to replace specific parameter values, which may not be convenient when executing some complex SQL statements. Therefore, we can use the sqlx library to execute MySQL to operate the database more intuitively and flexibly.
sqlx does not require manual preparation of SQL statements. It uses structures and structure fields to describe SQL statements and bound parameters. For example:
type User struct { ID int64 `db:"id"` Name string `db:"name"` Age int `db:"age"` } user := &User{Name: "Alice", Age: 25} tx := db.MustBegin() tx.NamedExec("INSERT INTO users (name, age) VALUES (:name, :age)", user) tx.Commit()
The above code uses the NamedExec function of sqlx to operate MySQL, where ":name" and ":age" are the names of the bound parameters, and user is a parameter represented by a structure.
The ORM (Object Relational Mapping) framework can help us operate and manage the database more conveniently and reduce the work of manually writing SQL statements. In Go language, the most popular ORM framework is GORM.
It is very simple to use GORM to operate MySQL. Here is an example of creating a user table. The code is as follows:
import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" ) type User struct { gorm.Model Name string Age int } func main() { db, err := gorm.Open("mysql", "root:123456@/test?charset=utf8&parseTime=True&loc=Local") if err != nil { panic(err) } defer db.Close() db.AutoMigrate(&User{}) // 自动创建user表 // 添加新用户 db.Create(&User{Name: "Alice", Age: 25}) // 查询用户信息 var user User db.Where("name = ?", "Alice").First(&user) fmt.Println(user) }
We only need to define a User structure to represent the user table in the database. Operations such as automatically creating database tables, adding new users, and querying user information can be implemented in the code.
Summary
This article introduces how to use Go language to efficiently develop and manage MySQL database. First, we need to install the MySQL database, Go language and related libraries; secondly, connect to MySQL and perform basic database operations; finally, we introduce the specific operations of using sqlx and ORM framework for MySQL development. I hope this article can provide help and guidance to students who want to use Go language for MySQL development.
The above is the detailed content of MySQL Database for Small Business: Rapid Development with Go Language. For more information, please follow other related articles on the PHP Chinese website!