Golang Gorm 连接数据库

连接数据库


为了连接数据库,你首先要导入数据库驱动程序。例如:

Go 复制代码
import _ "github.com/go-sql-driver/mysql"

import (
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

GORM 已经包含了一些驱动程序,为了方便的去记住它们的导入路径,你可以像下面这样导入
mysql 驱动程序

Go 复制代码
import _ "github.com/jinzhu/gorm/dialects/mysql"
// import _ "github.com/jinzhu/gorm/dialects/postgres"
// import _ "github.com/jinzhu/gorm/dialects/sqlite"
// import _ "github.com/jinzhu/gorm/dialects/mssql"

支持的数据库


MySQL

注意: 为了正确的处理 time.Time ,你需要包含 parseTime 作为参数。 (More supported parameters)

Go 复制代码
import (
  "github.com/jinzhu/gorm"
  _ "github.com/jinzhu/gorm/dialects/mysql"
)

func main() {
  db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=Tr
ue&loc=Local")
  defer db.Close()
}

PostgreSQL

Go 复制代码
import (
  "github.com/jinzhu/gorm"
  _ "github.com/jinzhu/gorm/dialects/postgres"
)

func main() {
  db, err := gorm.Open("postgres", "host=myhost port=myport user=gorm dbname=gorm password=mypassword")
  defer db.Close()
}

Sqlite3

Go 复制代码
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/sqlite"
)

func main() {
  db, err := gorm.Open("sqlite3", "/tmp/gorm.db")
  defer db.Close()
}

SQL Server


Get started with SQL Server,它可以通过 Docker 运行在你的 Mac, Linux 上。

Go 复制代码
import (
 "github.com/jinzhu/gorm"
 _ "github.com/jinzhu/gorm/dialects/mssql"
)
func main() {
  db, err := gorm.Open("mssql", "sqlserver://username:password@localhost:1433?da
tabase=dbname")
  defer db.Close()
}

不支持的数据库


GORM 官方支持以上四种数据库, 你可以为不支持的数据库编写支持,参考 GORM Dialects

相关推荐
周杰伦的稻香2 小时前
Go + Redis:本地部署高性能图片主色调提取服务
开发语言·redis·golang
福大大架构师每日一题2 小时前
2026年6月TIOBE编程语言排行榜,Go语言排名第13,Rust语言排名12。关于Rust已进入平台期的报道似乎为时过早。
开发语言·golang·rust
伊灵eLing5 小时前
GoLang 语言基础
开发语言·后端·golang
踏着七彩祥云的小丑5 小时前
Go学习第4天:条件、循环语句+函数
学习·golang·go
小小龙学IT7 小时前
Go 后端开发中的并发模式:从 Goroutine 到 Pipeline 实战
开发语言·后端·golang
geovindu8 小时前
go: Coroutines Pattern
开发语言·后端·设计模式·golang·协程模式
秋921 小时前
Go语言(Golang)开发工程师全景解析:岗位职责·语言优势与使用场景·各城市薪资·发展前景·高考志愿填报(2026版)
开发语言·golang·高考
小小龙学IT1 天前
Go 语言后端开发:从并发模型到生产落地的工程实践
开发语言·后端·golang
oqX0Cazj21 天前
2026超火Go-Zero实战:从架构原理到高并发接口落地,彻底解决接口超时、雪崩问题
开发语言·架构·golang
go不是csgo1 天前
从0到1理解Go熔断器:sony/gobreaker 源码剖析 + 仿TikTok Feed 项目实战
开发语言·后端·golang