您的位置:首页 >Linux环境中Golang如何使用数据库
发布于2026-04-24 阅读(0)
扫一扫,手机访问

想在Linux环境下用Golang搞定数据库操作?这事儿其实没想象中那么复杂。只要按部就班走好下面几个关键步骤,你就能轻松建立起连接,并开始执行查询。
首先,你得为项目配上合适的“驱动程序”。比如,如果你用的是MySQL,社区里广受欢迎的 go-sql-driver/mysql 就是个不错的选择。安装起来很简单,在终端里运行下面这条命令就行:
go get -u github.com/go-sql-driver/mysql
当然,数据库世界不止MySQL一家。如果你用的是PostgreSQL、MongoDB或者其他数据库,也都能找到对应的Go驱动,安装逻辑大同小异。
驱动装好了,下一步就是在Go代码里把它“请”进来。以MySQL为例,你需要这样导入:
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
这里有个细节值得注意:导入路径前面的下划线 _ 可不是手误。它的作用是让Go在编译时执行驱动包里的初始化函数,但又不会直接使用包里的其他标识符,算是一个标准写法。
万事俱备,现在可以正式连接数据库了。核心是使用 sql.Open 函数,你需要告诉它两件事:用哪个驱动,以及数据库的具体位置和访问凭证(也就是DSN)。
func main() {
dsn := "username:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := sql.Open("mysql", dsn)
if err != nil {
log.Fatal(err)
}
defer db.Close()
}
DSN字符串里包含了用户名、密码、协议、地址、端口、数据库名以及一些连接参数,可以说是连接信息的“总集合”。
连接成功,最有趣的部分就来了——和数据库对话。这里主要用两个方法:db.Query 用于获取多行结果的查询(比如SELECT),而 db.Exec 则适合执行不返回数据行的操作(如INSERT、UPDATE)。
rows, err := db.Query("SELECT id, name FROM users")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id int
var name string
err := rows.Scan(&id, &name)
if err != nil {
log.Fatal(err)
}
fmt.Printf("ID: %d, Name: %s\n", id, name)
}
遍历结果集、扫描数据到变量,整个过程清晰而直接,这正是Go语言风格的体现。
最后,但绝非最不重要的,是资源的清理。无论是数据库连接对象,还是查询返回的结果集,使用完毕后都应该及时关闭。上面代码中的 defer db.Close() 和 defer rows.Close() 就是在做这件事。养成好习惯,才能避免资源泄漏,让程序运行得更稳健。
当然,这只是一个入门级的流程演示。实际开发中,你可能会遇到连接池配置、事务处理、复杂查询优化等更深入的场景。不过别担心,只要掌握了这个基础框架,再去看官方文档和进阶教程,一切都会水到渠成。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9