当前位置: 首页 > article >正文

GORM 支持的数据库解析

GORM 是一个流行的 Go 语言 ORM(对象关系映射)库,它简化了 Go 与数据库之间的交互。作为一款功能强大的库,GORM 支持多种主流关系型数据库,满足不同开发场景下的需求。本文将探讨 GORM 支持的主要数据库及其特点,帮助开发者根据项目需求选择合适的数据库。

1. MySQL

  • 支持情况:完整支持 MySQL,包括常见的特性如外键、事务、自动迁移等。
  • 连接示例
import (
  "gorm.io/driver/mysql"
  "gorm.io/gorm"
)

dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

2. PostgreSQL

  • 支持情况:完全支持 PostgreSQL,能够处理多种 PostgreSQL 特性,如 JSONB 数据类型、数组等。
  • 连接示例
import (
  "gorm.io/driver/postgres"
  "gorm.io/gorm"
)

dsn := "user=gorm dbname=gorm password=gorm sslmode=disable"
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})

3. SQLite

  • 支持情况:完全支持 SQLite,适用于小型应用或嵌入式系统。支持事务、迁移和自动创建表。
  • 连接示例
import (
  "gorm.io/driver/sqlite"
  "gorm.io/gorm"
)

db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{})

4. SQL Server

  • 支持情况:完全支持 SQL Server,包括支持事务、外键、复杂查询等特性。
  • 连接示例
import (
  "gorm.io/driver/sqlserver"
  "gorm.io/gorm"
)

dsn := "sqlserver://username:password@localhost:1433?database=your_db"
db, err := gorm.Open(sqlserver.Open(dsn), &gorm.Config{})

5. CockroachDB

  • 支持情况:支持 CockroachDB,基于 PostgreSQL 的协议,GORM 可以与 CockroachDB 配合使用。
  • 连接示例
import (
  "gorm.io/driver/postgres"
  "gorm.io/gorm"
)

dsn := "postgres://user:password@localhost:26257/yourdb?sslmode=disable"
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})

6. MariaDB

  • 支持情况:作为 MySQL 的一个分支,MariaDB 与 MySQL 在功能上几乎完全兼容,因此 GORM 也支持 MariaDB。
  • 连接示例
import (
  "gorm.io/driver/mysql"
  "gorm.io/gorm"
)

dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

7. TiDB

  • 支持情况:支持 TiDB,作为兼容 MySQL 协议的数据库,GORM 可以在 TiDB 上运行。
  • 连接示例
import (
  "gorm.io/driver/mysql"
  "gorm.io/gorm"
)

dsn := "user:password@tcp(127.0.0.1:4000)/dbname?charset=utf8&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

8. ClickHouse

  • 支持情况:虽然 GORM 官方并没有直接提供 ClickHouse 驱动,但是可以通过第三方驱动支持它。
  • 第三方驱动示例
import (
  "github.com/ClickHouse/clickhouse-go/v2"
  "gorm.io/gorm"
)

db, err := gorm.Open(clickhouse.Open(dsn), &gorm.Config{})

9. Other Databases

  • GORM 也支持通过第三方驱动连接一些其他数据库,如:
    • MongoDB:虽然 GORM 不直接支持 MongoDB,但可以使用其他 Go 库来集成。
    • Elasticsearch:虽然 GORM 主要是针对关系型数据库的 ORM,但是你可以通过第三方库或自定义驱动来支持 NoSQL 数据库。

总结

GORM 支持的数据库包括:

  • MySQL
  • PostgreSQL
  • SQLite
  • SQL Server
  • CockroachDB
  • MariaDB
  • TiDB
  • ClickHouse(通过第三方驱动)

这些数据库都可以通过 GORM 进行连接和操作,支持常见的数据库操作,如 CRUD、事务、迁移、查询等。如果你使用其他数据库,通常也可以通过适配器或第三方库进行集成。


http://www.kler.cn/a/523411.html

相关文章:

  • 性能优化2-删除无效引用
  • 能说说MyBatis的工作原理吗?
  • 第3章 基于三电平空间矢量的中点电位平衡策略
  • 【Java基础-41.5】深入解析Java异常链:构建清晰的错误追踪体系
  • Java进阶(二):Java设计模式
  • 性能测试全链路监控模式有哪些?
  • 力扣 【99. 恢复二叉搜索树】Java题解(二叉树的 Morris 遍历)
  • Vue.js 配合 Vue Router 使用 Vuex
  • 【漫话机器学习系列】065.梯度(Gradient)
  • 数组at()方法:负索引的救赎与JavaScript标准化之路
  • jemalloc 5.3.0的tsd模块的源码分析
  • 关于存储磁盘固件版本:打破版本一致性迷思
  • Python 函数魔法书:基础、范例、避坑、测验与项目实战
  • 大模型概述
  • 第一个3D程序!
  • 在虚拟机里运行frida-server以实现对虚拟机目标软件的监测和修改参数(一)(android Google Api 35高版本版)
  • 借DeepSeek-R1东风,开启创业新机遇
  • nosql mysql的区别
  • SQL server 数据库使用整理
  • 实时数据处理与模型推理:利用 Spring AI 实现对数据的推理与分析
  • 29. 【.NET 8 实战--孢子记账--从单体到微服务】--项目发布
  • 如何保证缓存与数据库的数据一致性?
  • 《多线程基础之条件变量》
  • @RestControllerAdvice 的作用
  • 【信息系统项目管理师-选择真题】2010下半年综合知识答案和详解
  • C#面试常考随笔5:简单讲述下反射