本目录包含 ORM 模块的使用示例,从基础到生产环境的完整配置。
01_basic - 基础用法 ⭐ 推荐新手
展示 ORM 的基本使用方法:
- 连接数据库
- 基本 CRUD 操作
- 日志集成
- 慢查询检测
- RecordNotFound 错误处理
适合场景:快速上手,理解基本概念
02_with_trace - Trace 集成
展示如何集成 OpenTelemetry Trace:
- 初始化 TracerProvider
- 自动创建数据库 span
- Span 层级关系
- Span 属性详解
适合场景:需要分布式追踪的应用
03_with_metric - Metric 集成
展示如何收集性能指标:
- 实现 MetricRecorder 接口
- 收集查询性能数据
- 统计分析
- 集成 Prometheus/SigNoz
适合场景:需要性能监控的应用
04_production - 生产环境配置 ⭐ 推荐生产
展示完整的生产环境配置:
- Log + Trace + Metric 三件套
- 连接池配置
- 健康检查
- 错误处理和重试
- 事务支持
- 优雅关闭
适合场景:生产环境部署
所有示例默认使用 MySQL,请确保已安装 MySQL 并创建测试数据库:
CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;编辑示例代码,修改 DSN:
dsn := "root:password@tcp(127.0.0.1:3306)/testdb?charset=utf8mb4&parseTime=True&loc=Local"
// ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^
// 用户 密码 主机:端口 数据库名cd 01_basic
go run main.go01_basic → 学习基础用法和日志
↓
02_with_trace → 添加 trace 支持
↓
03_with_metric → 添加 metric 支持
↓
04_production → 生产环境完整配置
| 特性 | 01_basic | 02_with_trace | 03_with_metric | 04_production |
|---|---|---|---|---|
| 日志 | ✅ | ✅ | ✅ | ✅ |
| Trace | ❌ | ✅ | ❌ | ✅ |
| Metric | ❌ | ❌ | ✅ | ✅ |
| 连接池配置 | ❌ | ❌ | ❌ | ✅ |
| 健康检查 | ❌ | ❌ | ❌ | ✅ |
| 重试机制 | ❌ | ❌ | ❌ | ✅ |
| 事务 | ❌ | ❌ | ❌ | ✅ |
所有示例都自动包含必要的依赖。运行 go run main.go 会自动下载。
支持所有 GORM 支持的数据库:
- MySQL
- PostgreSQL
- SQLite
- SQL Server
- ClickHouse
- TiDB
只需更换驱动即可:
import "gorm.io/driver/postgres"
client, err := orm.New(
postgres.Open(dsn),
...
)参考 04_production 示例,包含所有生产环境最佳实践。
ORM 客户端完全兼容 GORM。只需:
// 原来的代码
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
db.First(&user, 1)
// 迁移到 kit/orm
client, err := orm.New(mysql.Open(dsn), orm.WithLogger(...))
client.First(&user, 1)- 日志: 异步记录,几乎无影响
- Trace: 使用采样器,可控制开销(建议生产环境 10% 采样)
- Metric: 异步收集,可忽略
- ORM 模块 README - 完整文档
- GORM 官方文档 - GORM 使用指南
- Kit 主仓库 - 查看其他模块