(本文内容基于 Bun ORM 官方文档 翻译整理)
1. 简介:什么是 Bun ORM? Bun 是一个 SQL 优先的 Go 语言 ORM(对象关系映射)框架,支持 PostgreSQL、MySQL、MSSQL 和 SQLite。它旨在提供一种简单高效的方式来操作数据库,同时利用 Go 的类型安全特性并减少样板代码。
核心特性 基于标准库构建:构建在 Go 标准 database/sql 包之上 类型安全:提供类型安全的查询构建器,性能卓越 复杂关系支持:支持复杂的关系和连接操作 迁移支持:提供迁移和架构管理功能 强大的扫描能力:全面的数据扫描功能 钩子和中间件:支持钩子和中间件 生产就绪:经过广泛测试,可用于生产环境 为什么选择 Bun? Bun 通过 SQL 优先 的理念区别于其他 Go ORM,不试图对开发者隐藏 SQL。这种方法具有以下优势:
可预测的查询:你确切知道生成的 SQL 是什么 高性能:对原始 SQL 的开销最小 渐进式采用:易于集成到现有代码库 灵活性:需要时可降级到原始 SQL 类型安全:大多数操作的编译时检查 2. 安装与配置 安装 Bun 要安装 Bun 和所需的数据库驱动:
# 核心 Bun 包 go get github.com/uptrace/bun@latest # 数据库驱动(选择一个或多个) go get github....
本文由claude code生成。作为备忘录和分享,欢迎指正和补充。
一、Ent简介 Ent是一个简单但功能强大的实体框架,用于Go语言,使构建和维护具有大型数据模型的应用程序变得容易。 Ent是由Meta(Facebook)开源团队构建的ORM框架,提供了一个API,用于将任何数据库模式建模为Go对象。
核心特性 Ent的主要特性包括:
Schema As Code:将任何数据库模式建模为Go对象 轻松遍历任何图结构:运行查询、聚合并轻松遍历任何图结构 静态类型和显式API:100%静态类型和显式API,通过代码生成实现 多存储驱动支持:支持MySQL、PostgreSQL、SQLite和Gremlin 易于扩展:使用Go模板简单扩展和自定义 Ent是一个相当新的ORM,使用代码优先的方法,在Go代码中定义模式。Ent之所以流行,是因为它能够优雅地处理复杂的数据模型和关系。
二、快速开始 2.1 安装Ent # 初始化Go模块 go mod init myapp # 安装ent CLI工具 go install entgo.io/ent/cmd/ent@latest # 或者使用go get go get entgo.io/ent/cmd/ent 2.2 创建第一个Schema # 创建User实体 ent new User 这会在 ent/schema/ 目录下生成一个基础的schema文件:
package schema import ( "entgo.io/ent" "entgo.io/ent/schema/field" ) // User holds the schema definition for the User entity. type User struct { ent.Schema } // Fields of the User....