Gorm-链式调用(一)

2023-04-24 19:31:41 浏览数 (1)

GORM 是一个在 Golang 中使用的 ORM 框架,它允许你使用链式调用的方式来构建 SQL 查询语句。GORM 提供了许多便捷的方法,使得数据库操作更加简单和高效。

GORM 链式调用的基础

GORM 提供了一个基础的链式调用方法,可以通过 DB 对象来调用,示例如下:

代码语言:javascript复制
db.Table("users").Select("name, email").Where("age > ?", 18).Find(&users)

上面的代码中,Table 方法指定要查询的表,Select 方法指定要查询的列,Where 方法指定查询条件,Find 方法执行查询操作。这些方法都可以通过链式调用的方式来组合使用,如下所示:

代码语言:javascript复制
db.Table("users").Select("name, email").Where("age > ?", 18).Order("age desc").Limit(10).Find(&users)

GORM 链式调用的条件构造

GORM 链式调用的一个重要特性是条件构造,它允许你在查询语句中构建复杂的条件,使得查询更加灵活和可控。下面是一些常用的条件构造方法:

  • Where:指定查询条件,支持使用 ? 占位符。
  • Or:指定或查询条件,可以和 Where 方法组合使用。
  • Not:指定非查询条件,可以和 Where 方法组合使用。
  • Select:指定要查询的列。
  • Order:指定查询结果的排序方式。
  • Limit:指定查询结果的返回数量。
  • Offset:指定查询结果的偏移量。

下面是一个示例,演示如何使用 GORM 链式调用来构建复杂的查询条件:

代码语言:javascript复制
db.Table("users").
    Select("name, email").
    Where("age > ?", 18).
    Or("name like ?", "%john%").
    Not("email like ?", "%example.com").
    Order("age desc").
    Limit(10).
    Offset(20).
    Find(&users)

上面的代码中,Where 方法指定了查询条件 age > 18Or 方法指定了或查询条件 name like '%john%'Not 方法指定了非查询条件 email not like '%example.com%'Order 方法指定了查询结果的排序方式 age descLimit 方法指定了查询结果的返回数量为 10Offset 方法指定了查询结果的偏移量为 20。最后,Find 方法执行查询操作,并将查询结果存储到 users 变量中。

go

0 人点赞