一、前言:为什么你的数据库总在“守空房”?
作为一名Go语言萌新(或者老司机),当你兴冲冲学完语法准备大展拳脚时,是不是经常在数据库操作这块被卡得怀疑人生?特别是当你要把程序里的数据塞进MySQL时,是不是经常遇到这样的场景:
- 代码跑起来风风火火,一看数据库:空空如也
- 插是插进去了,但全是乱码,中文变成了一堆“???”
- 好不容易插成功,速度却慢得像老牛拉车
- 最可怕的是,数据莫名其妙少了几条,还找不到凶手
别慌!今天咱们就来彻底搞定Go语言操作MySQL之数据插入这门艺术。我会用最接地气的方式,从安装驱动到高级技巧,让你不仅能把数据“插进去”,还能“插得漂亮”、“插得高效”!
二、准备工作:先给你的Go请个MySQL“翻译官”
在开始之前,咱们需要准备好两样东西:
1. 安装Go-MySQL-Driver
这是Go语言官方推荐的MySQL驱动,相当于给你的Go程序请了一位专业的MySQL翻译:
go get -u github.com/go-sql-driver/mysql
2. 准备好测试用的MySQL数据库
假设你本地已经有MySQL在运行,咱们先创建一个测试数据库和表:
CREATE DATABASE IF NOT EXISTS go_test;
USE go_test;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
这个users表就是今天我们要“疯狂插入”的目标!
三、基础篇:从“Hello World”式插入开始
3.1 连接数据库:先跟MySQL“握个手”
package main
import (
"database/sql"
"fmt"
"log"
"time"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 连接数据库的格式:用户名:密码@协议(地址:端口)/数据库名?参数
dsn := "root:yourpassword@tcp(127.0.0.1:3306)/go_test?charset=utf8mb4&parseTime=True"
db, err := sql.Open("mysql", dsn)
if err != nil {
log.Fatalf("数据库连接失败:%v", err)
}
defer db.Close()
// 检查连接是否真的OK
err = db.Ping()
if err != nil {
log.Fatalf("数据库ping不通:%v", err)
}
fmt.Println("恭喜!MySQL连接成功!")
}
重点解释:
sql.Open()只是初始化连接,并不真正建立连接

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



