内置 ORM 和自定义 ORM
2025/5/14大约 2 分钟componentorm
概述
sponge 基于 SQL 创建的服务(web、gRPC、gRPC+HTTP)使用
内置 ORM 组件
,不支持使用自定义 ORM 组件
。sponge 基于 Protobuf 创建的服务(web、gRPC、gRPC+HTTP)不绑定特定数据库组件,因此开发者可根据项目需求灵活选择
内置 ORM 组件
或自定义 ORM 组件
,通过这种设计,又保留了架构灵活性,满足不同复杂度的项目需求。两者的主要区别:
步骤 内置 ORM 组件 自定义 ORM 组件 1. 数据库连接配置 自动生成 开发者去实现 2. Model 定义 自动生成 开发者去实现 3. CRUD 操作 自动生成 开发者实现数据库的 CRUD 操作
内置 ORM 组件(推荐)
- 特点:
- 集成 Gorm/MongoDB 官方驱动
- 自动生成完整的 CRUD API 代码(包含 DAO 层、Model 层、数据库连接等)
- 生成代码自动融入项目架构,保持风格统一
- 适用场景:需要快速开发的标准化项目
提示
在开发指南中,标题为添加 CRUD API
章节介绍的就是使用内置 ORM 组件。
自定义 ORM 组件
- 特点:
- 支持任意 ORM 库(如 XORM、SQLX、Ent 等)
- 需开发者实现:
- 数据库连接配置
- Model 定义
- DAO 层 CRUD 操作
- 目录结构可自由规划
- 适用场景:
- 需要对接已有数据库架构
- 有特殊性能优化需求
- 使用特定 ORM 功能
如果不想使用内置 ORM 组件,可以自己实现 ORM 组件,并通过配置文件配置数据库连接信息。
使用自定义 ORM 组件说明
- 数据库初始化代码在
internal/database
目录下。 - 默认没有
internal/model
、internal/dao
等目录,开发者可自定义目录结构,如创建internal/repository
目录等,把操作数据代码都放在该目录下。 - 在 handler 或 service 等代码层中,并调用其方法即可。