如果你觉得 IRIS 对 Go 的原生支持令人兴奋,那就等着看 GORM 加入后会发生什么吧。
就在最近,随着go-irisnative 的发布,我们迎来了 InterSystems IRIS 的本地 GoLang 支持。这仅仅是个开始。现在,我们又推出了gorm-iris ——一个 GORM 驱动程序,旨在为您的 IRIS + Go 堆栈带来对象关系映射 (ORM) 的强大功能。

为什么选择 GORM?
GORM 是 Go 生态系统中最流行的 ORM 库之一。它使使用 Go 结构而不是编写原始 SQL 与数据库交互变得简单。通过自动迁移、关联和查询构建等功能,GORM 极大地简化了后端开发。
因此,在实现 Go 与 IRIS 的本地对话后,下一步自然是让 GORM 与 IRIS 无缝协作。这正是 gorm-iris 所要做的。
什么是 gorm-iris?
gorm-iris 是在 go-irisnative 基础上为 InterSystems IRIS 定制的 GORM 驱动程序。它就像一座桥梁,支持开发人员使用熟悉的 GORM 语法和模式与 IRIS 数据库交互,而幕后的所有繁重工作都通过本地 IRIS 调用来处理。
可以将其视为两个世界中的最佳选择:
- 通过
go-irisnative实现本地性能和数据访问 - 通过 GORM 实现开发人员友好的 ORM 功能
主要功能
以下是 gorm-iris 提供的功能:
✅ GORM 和 IRIS 之间的无缝集成
✅ 使用本地 Go 结构为 IRIS 数据建模
✅ 开箱即用的基本 CRUD 操作
✅ 通过 Go 界面自定义行为
当然,这一切都是开源的。
快速入门示例
想开始使用吗?这里有一个最基本的设置来演示如何工作:
package main
import (
"fmt"
iris "github.com/caretdev/gorm-iris"
"gorm.io/gorm"
)
type User struct {
ID int
Name string
Email string
}
func main() {
dsn := "iris://_SYSTEM:SYS@localhost:1972/USER"
db, err := gorm.Open(iris.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect to IRIS")
}
// Auto-migrate schema
db.AutoMigrate(&User{})
// Create
db.Create(&[]User{
{Name: "Johh", Email: "john@example.com"},
{Name: "Johh1", Email: "john1@example.com"},
{Name: "John2", Email: "john2@example.com"},
})
// Read
var user User
db.First(&user, "email = ?", "john1@example.com")
fmt.Printf("Found: ID: %d; Name: %s\n", user.ID, user.Name)
}
没错,就是这样。
引擎盖下有什么?
gorm-iris 驱动程序通过 go-irisnative 将 GORM 操作转换为本地调用。这意味着你仍然可以获得直接访问 IRIS 的速度和效率,但对于日常用例来说,这只是一个更高层次的抽象。
它非常适合以下开发人员:
- 希望使用 IRIS 作为后台构建 Go 应用程序
- 偏好 ORM 式开发而非直接查询构建
- 希望使用简洁、可读的 Go 代码构建原型或全面的应用程序
发展方向
这只是 0.1.1 版——我们正在积极改进功能覆盖范围、性能调优和处理更复杂的 GORM 功能。
如果您正在使用 GORM,并有反馈意见或功能需求,欢迎提出问题和建议!
👉 查看软件源: https://github.com/caretdev/gorm-iris
最终想法
通过 go-irisnative,我们为 GoLang 开发人员打开了与 InterSystems IRIS 对话的大门。通过 gorm-iris,我们邀请他们留下来共进晚餐。
这个库就是要让 IRIS 在您的 Go 开发工作流中有家的感觉。它简洁、富有表现力,并充分利用了 Go 开发人员已经喜爱的工具。
所以,来吧!试试它,构建一些很酷的东西,并让我们知道你的想法。
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)

.png)