Home  >  Article  >  Database  >  MySQL Database for Small Business: Rapid Development with Go Language

MySQL Database for Small Business: Rapid Development with Go Language

王林
王林Original
2023-06-17 19:49:431216browse

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.

  1. Install 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.

  1. Install Go language

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.

  1. Install the MySQL Go library

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
  1. Connect to MySQL database

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.

  1. MySQL transaction in Go language

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
}
  1. Use sqlx to operate MySQL

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.

  1. Use the ORM framework for MySQL development

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!

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