很多人觉得理财离不开Excel,其实现在很多自动化记账、投资分析工具背后都是程序在跑数据。如果你懂点编程,像Go语言这种高效又简单的工具,配合MySQL数据库,分分钟就能搭出自己的财务管理系统。
先装好必要的工具包
Go本身不自带数据库功能,得借助第三方库。最常用的是github.com/go-sql-driver/mysql,安装很简单,在命令行里执行:
go get -u github.com/go-sql-driver/mysql这就像给你的Go程序装了个“连接器”,让它能和MySQL对话。
连上你的MySQL数据库
假设你本地有个MySQL服务,用户名是root,密码123456,数据库叫finance_db。用下面这段代码就能连上:
package main
import (
"database/sql"
"fmt"
"_ github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/finance_db")
if err != nil {
panic(err.Error())
}
defer db.Close()
err = db.Ping()
if err != nil {
panic(err.Error())
}
fmt.Println("数据库连接成功!")
}这段代码就像是打开了一扇门,让Go程序可以进出MySQL读写数据。
创建一张记账表试试
比如你想记录每月支出,可以建个expenses表:
_, err := db.Exec(
"CREATE TABLE IF NOT EXISTS expenses (" +
"id INT AUTO_INCREMENT PRIMARY KEY, " +
"amount DECIMAL(10,2), category VARCHAR(50), date DATE)")
if err != nil {
panic(err.Error())
}这样就建好了一个带编号、金额、分类和日期的表格,以后每一笔花销都能存进去。
往数据库里写一笔消费记录
昨天买了杯咖啡花了32元,分类是餐饮,可以这样插入:
_, err := db.Exec(
"INSERT INTO expenses (amount, category, date) VALUES (?, ?, ?)",
32.00, "餐饮", "2024-04-05")
if err != nil {
panic(err.Error())
}
fmt.Println("记录已添加")这里的问号是占位符,防止SQL注入,安全又方便。
查一下本月花了多少钱
想看看四月总支出?直接查询:
rows, err := db.Query("SELECT amount, category, date FROM expenses WHERE date LIKE '2024-04%'")
if err != nil {
panic(err.Error())
}
defer rows.Close()
for rows.Next() {
var amount float64
var category, date string
err := rows.Scan(&amount, &category, &date)
if err != nil {
panic(err.Error())
}
fmt.Printf("%.2f元 | %s | %s\n", amount, category, date)
}跑一下程序,所有四月的开销就列出来了,比翻小票快多了。
把这些代码组合起来,你可以写个小程序,每天自动导入银行卡账单,按类别统计支出,甚至生成图表提醒你别超支。技术不一定要多高深,能解决实际问题才是关键。