GORM入门:链式操作全解析(三)

一、链式基本操作

GORM 的方法可分为三大类:链式方法(Chain Methods)、终结方法(Finisher Methods)和新建会话方法(New Session Methods)。这些分类同时适用于传统 API 和泛型 API。

链式方法(Chain Methods)包含操作:where、Select、Omit、Joins、Scopes、Preload 以及 Raw等。需要注意的是,Raw 方法不能与其他链式方法组合使用来构建 SQL 语句。

终结方法(Finisher Methods)包含:Create、First、Find、Take、Save、Update、Delete、Scan、Row、Rows等。

GORM 通过链式方法(Chain Methods)累积查询条件,仅在调用终结方法(Finisher Methods)时生成并执行 SQL 语句。代码示例如下:

db.Where("age > ?", 18).Where("name = ?", "张三").Find(&user)

上述代码与下述代码执行结果相同:

 db.Where("age > ? and name = ?", 18,"张三").Find(&user)

二、动态链式操作

采用分支逻辑可动态调整查询链,该特性特别适用于复杂业务场景的查询构建,代码示例如下:

tx := db.Where("age > ?", 20)
if name != "" {
    tx = tx.Where("name = ?", name)
}

tx.Find(&users)

三、链式执行多终结方法

当链式使用 GORM 多个终结方法(Finisher Methods), 后面的终结方法(Finisher Methods)将复用前面的终结方法(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值