用Go语言操作MySQL,省下外包开发的钱

很多小公司或者自由开发者在做项目时,数据库操作是个绕不开的环节。以前可能得请个后端专门写接口,一来二去花不少钱。其实自己动手,用Go语言操作MySQL,几行代码就能搞定数据读写,省下的可都是真金白银。

为什么选Go?

Go语言上手快,编译出来的程序跑得快,内存占用还低。关键是语法干净,写起来不费劲。像你做个后台管理系统、订单记录工具,用Go连MySQL,几分钟就能搭出一个数据服务,不用再花钱找人搭框架。

先装依赖,别怕命令行

打开终端,敲这句:

go get -u github.com/go-sql-driver/mysql

这就把MySQL驱动装好了。就跟手机装APP一样,装完就能连数据库了。

连上数据库试试

假设你本地有个MySQL,用户名root,密码123456,数据库叫test_db。代码这么写:

package main

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

func main() {
    dsn := "root:123456@tcp(127.0.0.1:3306)/test_db"
    db, err := sql.Open("mysql", dsn)
    if err != nil {
        panic(err)
    }
    defer db.Close()

    if err := db.Ping(); err != nil {
        panic(err)
    }
    
    // 连上了,可以开始干活了
}

查条数据看看

比如你有个user表,想查ID为1的用户:

var name string
err = db.QueryRow("SELECT name FROM user WHERE id = ?", 1).Scan(&name)
if err != nil {
    panic(err)
}
println("用户姓名:" + name)

就这么简单,一条记录就拿回来了。比翻phpMyAdmin快多了。

插入数据也轻松

新增用户?用Exec就行:

result, err := db.Exec("INSERT INTO user(name, age) VALUES(?, ?)", "张三", 25)
if err != nil {
    panic(err)
}

id, _ := result.LastInsertId()
println("新用户ID:", id)

实际场景:记账小工具

你自己记家庭开销,建个expense表,字段有金额、分类、时间。写个Go程序,每天吃完晚饭花两分钟运行一下:

db.Exec("INSERT INTO expense(amount, category, created_at) VALUES(?, ?, NOW())", 45.5, "餐饮")

时间一长,数据攒够了,还能拿去做统计分析,看出哪个月外卖吃多了。省下的饭钱,够买好几本书。

别忘了处理错误

代码里看到panic别慌,上线的时候换成日志记录就行。关键是先把功能跑通,细节慢慢优化。自己写的程序,哪里出问题自己清楚,改起来比催外快多了。

用Go操作MySQL,门槛没想象中高。花个晚上看一遍文档,第二天就能写出能用的工具。省下的不仅是钱,还有沟通成本和等待时间。