很多小公司或者自由开发者在做项目时,数据库操作是个绕不开的环节。以前可能得请个后端专门写接口,一来二去花不少钱。其实自己动手,用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,门槛没想象中高。花个晚上看一遍文档,第二天就能写出能用的工具。省下的不仅是钱,还有沟通成本和等待时间。