Golang SQL数据库层REL v0.2.0发布 - 支持分层架构
Golang SQL数据库层REL v0.2.0发布 - 支持分层架构 大家好,经过两个月的努力,我们很自豪地推出 rel 的 v0.2.0 版本。rel 旨在成为您数据库层的一个即插即用库。rel 为测试提供了强大的模拟库和优雅的 API。
更新日志:
- 乐观数据库插入和更新 (#33)
- 软删除 (#35)
- 在 API 中引入上下文 (#34)
- 实现 ping 功能 (#36)
- 使用结构体创建和更新时保存零值 (#31)
- [修复] 重置集合 (#37)
- [修复] 无作用域查询构建器 (#38)
- [修复] 更新未更改记录时未找到更新的问题 (#39)
Fs02/rel
用于分层架构的 Golang SQL 数据库层。 - Fs02/rel
更多关于Golang SQL数据库层REL v0.2.0发布 - 支持分层架构的实战教程也可以访问 https://www.itying.com/category-94-b0.html
1 回复
更多关于Golang SQL数据库层REL v0.2.0发布 - 支持分层架构的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
REL v0.2.0的发布确实为Go语言的数据库层带来了重要改进,特别是在分层架构支持方面。新版本通过引入上下文支持、软删除和乐观并发控制等功能,显著提升了库的实用性和可靠性。
以下是几个关键特性的代码示例:
- 上下文支持:
// 在API操作中传递上下文
ctx := context.Background()
err := repo.Find(ctx, &user, rel.Eq("id", 1))
if err != nil {
log.Fatal(err)
}
- 软删除:
// 定义包含软删除字段的模型
type User struct {
ID int
Name string
DeletedAt time.Time `db:",omitempty"`
}
// 软删除记录
err := repo.Delete(ctx, &user)
// 实际执行UPDATE users SET deleted_at = NOW() WHERE id = ?
- 乐观并发控制:
// 使用版本号进行乐观锁
type Product struct {
ID int
Name string
Version int `db:"version"`
}
// 更新时会检查版本号
product.Version = 2
err := repo.Update(ctx, &product)
// 执行: UPDATE products SET name=?, version=? WHERE id=? AND version=?
- 保存零值:
type Config struct {
ID int
Value string
Flag bool
}
config := Config{ID: 1, Flag: false}
// Flag的零值false会被保存到数据库
err := repo.Update(ctx, &config)
这些改进使得REL更适合在分层架构中使用,特别是在需要事务管理、超时控制和并发处理的场景。新版本的API设计保持了简洁性,同时提供了更强大的功能集。

