Documentation
¶
Index ¶
- Constants
- func Create(name string) (*gorm.DB, error)
- func Default() *gorm.DB
- func Get(name string) (*gorm.DB, error)
- func Open(driver, dsn string, opts ...gorm.Option) (*gorm.DB, error)
- func RegisterDriver(name string, dialect DialectOpen, alias ...string)
- func SetEnvPrefix(prefix string)
- func SetOptionsFunc(fn func(name string) Options)
- func SingleWrap[T any](get func(string) (T, error)) func(string) (T, error)
- func Sort[K cmp.Ordered, S cmp.Ordered](tx *gorm.DB, values map[K]S) (rowsUpdated int64, err error)
- func SortExec[K cmp.Ordered, S cmp.Ordered](tx *gorm.DB, values map[K]S, keyColumn, sortColumn string) *gorm.DB
- func SortPrep[K cmp.Ordered, S cmp.Ordered](values map[K]S, kc, sc clause.Column) (where clause.Expr, value clause.Expr)
- type DialectOpen
- type Int
- type Integer
- type Options
- type Scope
- type SortOptions
- type Uint
Constants ¶
const DEFAULT = "DEFAULT"
Variables ¶
This section is empty.
Functions ¶
func Create ¶
Create 是一个用于创建数据库连接的方法。 它接受一个数据库名称作为参数,并根据该名称获取数据库配置。 如果没有指定数据库驱动和DSN,则使用默认的SQLite数据库和内存存储。 该方法返回一个*gorm.DB实例和一个错误(如果有的话)。
func Default ¶
Default 返回一个默认的 *gorm.DB 实例,主要用于数据库操作。 该函数尝试通过调用 fetch 函数来获取数据库实例。如果 fetch 函数返回错误, 则构建一个带有错误信息的 *gorm.DB 实例,并确保其内部状态正确初始化。
func Get ¶
Get 是一个用于获取数据库连接的函数。 它接受一个数据库名称作为参数,并返回一个指向 gorm.DB 的指针和一个错误值。 该函数主要负责调用 fetch 函数来实际进行数据库连接的获取。
参数:
name - 指定要连接的数据库名称。
返回值:
*gorm.DB - 返回一个指向 gorm.DB 的指针,代表数据库连接。 error - 如果获取数据库连接时发生错误,返回错误信息。
func Open ¶
Open 是一个用于初始化数据库连接的函数。 它接受数据库驱动名称、数据源名称(DSN)以及可选的 GORM 配置选项作为参数。 函数返回一个 *gorm.DB 实例,用于与数据库进行交互,或者返回一个错误,如果连接失败。
func RegisterDriver ¶
func RegisterDriver(name string, dialect DialectOpen, alias ...string)
RegisterDriver 注册一个新的数据库驱动及其方言。 该函数接受驱动名称、方言实现以及可选的别名列表。 主要用于在数据库驱动和其对应方言之间建立映射,同时支持通过别名来引用相同的方言。
参数:
name - 驱动的唯一名称,用作在drivers map中的键。 dialect - DialectOpen类型,表示特定数据库的方言实现。 alias - 可变参数,包含驱动的别名,每个别名也将与主驱动名称建立映射。
func SetEnvPrefix ¶
func SetEnvPrefix(prefix string)
SetEnvPrefix 设置环境变量的前缀。 此函数允许用户在全局范围内更改环境变量的前缀,以便在大型项目或复杂环境中更好地管理配置。
参数:
prefix: 要设置的新环境变量前缀。这应该是一个简洁且具有描述性的字符串,用于标识项目或应用程序的环境变量。
func SetOptionsFunc ¶
SetOptionsFunc 是一个用于设置选项的函数。 它接受一个函数作为参数,该函数应接受一个字符串参数 name,并返回一个 Options 对象。 当需要动态设置或获取配置选项时,可以通过调用 SetOptionsFunc 来实现。 这种设计允许在运行时灵活地调整或定制选项,而无需在编译时固定这些选项。
参数:
fn - 一个函数,根据提供的名称返回相应的配置选项。
设置:
getOptions - 通过调用 fn,可以动态地获取或设置配置选项。
func SingleWrap ¶
SingleWrap 是一个函数装饰器,用于缓存和去重处理。 它接受一个函数 get,该函数通过名称获取一个类型为 T 的实例。 返回一个新的函数,该函数会缓存 get 的调用结果,以避免重复获取相同的实例。
func Sort ¶
Sort 函数用于更新数据库中的排序信息。
该函数接收一个 *gorm.DB 类型的参数 tx,代表数据库事务, 以及一个映射类型 values,其键和值都实现了 Ordered 接口, 用于指定需要更新排序信息的实体及其新的排序值。 函数返回更新的行数和遇到的错误(如果有)。
func SortExec ¶
func SortExec[K cmp.Ordered, S cmp.Ordered](tx *gorm.DB, values map[K]S, keyColumn, sortColumn string) *gorm.DB
SortExec 根据给定的键值对对数据库中的记录进行排序更新。
该函数使用 GORM 进行数据库操作,利用类型参数 K 和 S 来确保键和值的有序性。
参数:
tx - GORM 的数据库连接对象,如果为 nil,则使用默认连接。 values - 是一个映射,其键和值分别对应数据库记录中的键和排序值。 keyColumn 和 sortColumn - 是数据库表中的列名,分别用于标识键列和排序列。
函数返回更新操作后的 GORM DB 对象。
func SortPrep ¶
func SortPrep[K cmp.Ordered, S cmp.Ordered](values map[K]S, kc, sc clause.Column) (where clause.Expr, value clause.Expr)
SortPrep 为排序前的准备操作生成 SQL 表达式。
该函数根据提供的映射,创建一个 CASE 表达式来指定排序的值,并生成 WHERE 表达式来过滤结果。
参数:
values - 一个映射,其键和值将用于生成排序表达式。 kc - 一个表示排序键列的 clause.Column。 sc - 一个表示默认排序列的 clause.Column。
返回值:
where - 一个 clause.Expr,用于在查询中使用,以过滤出需要排序的记录。 value - 一个 clause.Expr,表示 CASE 表达式,用于指定排序的值。
Types ¶
type DialectOpen ¶
type Options ¶
type Options struct { // Driver 是数据库驱动的名称,例如 "mysql" 或 "postgres"。 // 这个字段是可选的,如果不需要指定驱动或者使用默认驱动,可以留空。 Driver string `json:"driver,omitempty"` // DSN 是数据源名称(Data Source Name),包含了连接数据库所需的详细信息。 // 这个字段的格式依赖于具体的数据库驱动,通常包括用户名、密码、主机和数据库名等信息。 // 和 Driver 一样,这个字段也是可选的,取决于是否需要在连接时指定这些详细信息。 DSN string `json:"dsn,omitempty"` // Debug 指示是否启用调试模式。 // 当设置为 true 时,数据库操作的相关信息会被记录下来,通常用于开发或者调试阶段。 // 在生产环境中,通常将这个值设置为 false,以避免不必要的性能开销。 Debug bool `json:"debug,omitempty"` }
Options 定义了数据库连接的配置选项。 它是一个结构体,包含了连接数据库所需的信息以及调试模式的配置。
type Scope ¶
Scope 是一个定义了如何对数据库查询进行条件化修改的函数类型。 它接收一个 *gorm.DB 类型的参数,代表 GORM 的数据库连接实例, 并返回一个经过修改的 *gorm.DB 类型的实例。 使用 Scope 可以动态地修改数据库查询,例如添加额外的条件、排序规则等。
func Like ¶
Like 创建一个查询范围,用于在数据库查询中添加LIKE条件。 该函数主要用于实现模糊查询,通过在指定列中搜索包含查询字符串q的项。
参数:
column: 数据库列名,表示要在哪一列中进行模糊查询。 q: 查询字符串,表示要搜索的关键字。
返回值:
Scope: 返回一个函数,该函数接收一个*gorm.DB实例,并返回添加了LIKE条件的*gorm.DB实例。
func OrderBy ¶
OrderBy 根据传入的排序参数构建排序查询。 该函数接收两个参数:orderBy 是用户指定的排序参数,def 是默认的排序参数。 它返回一个 Scope 函数,该函数可以应用于 gorm.DB 对象以添加排序条件。
func Paging ¶
Paging 是一个泛型函数,用于创建一个分页查询的范围。 它接受页码(page)、每页大小(size)和一个可选的默认每页大小(defSize)作为参数。 该函数返回一个 Scope 函数,该函数对传入的 *gorm.DB 实例应用分页逻辑。
type SortOptions ¶
type SortOptions struct { Table any // 表名或模型。可以是表名或模型结构体。 KeyColumn string // 键列名,用于标识需要排序的记录,默认为主键。 SortColumn string // 排序列名,用于指定排序依据的列,默认为 `sort`。 }
SortOptions 定义了排序选项的结构体。 主要用于指定对数据库表或模型进行操作所需的排序相关信息。