Documentation
¶
Index ¶
- Variables
- func Delete(ex Executor, query string, args ...any) error
- func DeleteNamed(driver Driver, ex Executor, query string, params map[string]any) error
- func GetPointersForColumns[T any](columns []string, fieldMap *FieldMap, t *T) *[]interface{}
- func Insert[T any](ex Executor, t *T) (int, error)
- func InsertExistingUuid[T any](ex Executor, t *T) error
- func InsertNative(ex Executor, query string, args ...any) (int, error)
- func InsertUuid[T any](ex Executor, t *T) (string, error)
- func JoinForIn(ids []int) string
- func JoinStringForIn[T any](offset int, params []string) string
- func JoinStringForInWithDriver(driver Driver, offset int, count int) string
- func ParseNamedQuery(driver Driver, query string, params map[string]any) (string, []any, error)
- func ParseNamedQueryForModel[T any](query string, params map[string]any) (string, []any, error)
- func RegisterDriver(driver Driver)
- func RegisterModel[T any](driver ...Driver)
- func RegisterModelWithNaming[T any](driver Driver, namingStrategy DbNamingStrategy)
- func Select[T any](ex Executor, query string, args ...any) ([]*T, error)
- func SelectMultipleNative[T any](ex Executor, mapLine func(*interface{ Scan(...any) error }, *T) error, ...) ([]*T, error)
- func SelectNamed[T any](ex Executor, query string, params map[string]any) ([]*T, error)
- func SelectSingle[T any](ex Executor, query string, args ...any) (*T, error)
- func SelectSingleNamed[T any](ex Executor, query string, params map[string]any) (*T, error)
- func Update[T any](ex Executor, t *T, where string, args ...any) error
- func UpdateNamed[T any](ex Executor, t *T, where string, params map[string]any) error
- func UpdateNative(ex Executor, query string, args ...any) error
- func ValidateColumns[T any](columns []string, fieldMap *FieldMap) error
- type DbNamingStrategy
- type DefaultDbNamingStrategy
- type Driver
- type Executor
- type FieldMap
- type InsertUpdateQueryGenerator
- type MySqlInsertUpdateQueryGeneratordeprecated
- type P
- type PgInsertUpdateQueryGeneratordeprecated
- type SqliteInsertUpdateQueryGeneratordeprecated
Constants ¶
This section is empty.
Variables ¶
View Source
var StructToFieldMap = make(map[reflect.Type]*FieldMap)
Functions ¶
func DeleteNamed ¶
func GetPointersForColumns ¶
func InsertExistingUuid ¶
func ParseNamedQuery ¶
func ParseNamedQueryForModel ¶
func RegisterDriver ¶
func RegisterDriver(driver Driver)
func RegisterModel ¶
func RegisterModelWithNaming ¶
func RegisterModelWithNaming[T any](driver Driver, namingStrategy DbNamingStrategy)
func SelectMultipleNative ¶
func SelectNamed ¶
func SelectSingleNamed ¶
func UpdateNamed ¶
Types ¶
type DbNamingStrategy ¶
type DefaultDbNamingStrategy ¶
type DefaultDbNamingStrategy struct{}
func (DefaultDbNamingStrategy) GetColumnNameFromStructName ¶
func (d DefaultDbNamingStrategy) GetColumnNameFromStructName(input string) string
func (DefaultDbNamingStrategy) GetTableNameFromStructName ¶
func (d DefaultDbNamingStrategy) GetTableNameFromStructName(input string) string
type Driver ¶
type Driver interface {
// Human-readable name (e.g., "PostgreSQL")
Name() string
// Embed existing query generation interface
InsertUpdateQueryGenerator
// Execute INSERT and return generated ID.
// PG-style: RETURNING id + QueryRow. MySQL-style: Exec + LastInsertId.
InsertAndGetId(ex Executor, query string, args ...any) (int, error)
// Return placeholder for the n-th argument (1-indexed).
// PG: "$1", "$2". MySQL/SQLite: "?".
Placeholder(argIndex int) string
// Whether backslash escapes inside string literals (MySQL = true, others = false).
SupportsBackslashEscape() bool
// Renumber $N placeholders in WHERE clause by offset. No-op for ?-based drivers.
RenumberWhereClause(where string, offset int) string
// Generate comma-separated placeholders for IN clauses.
// PG: "$3,$4,$5" (offset-aware). MySQL/SQLite: "?,?,?" (offset ignored).
JoinStringForIn(offset int, count int) string
}
var MySQL Driver = &mysqlDriver{}
var PostgreSQL Driver = &pgDriver{}
var SQLite Driver = &sqliteDriver{}
type FieldMap ¶
type MySqlInsertUpdateQueryGenerator
deprecated
type MySqlInsertUpdateQueryGenerator = mysqlDriver
Deprecated: Use MySQL variable directly. MySqlInsertUpdateQueryGenerator is kept for backward compatibility.
type PgInsertUpdateQueryGenerator
deprecated
type PgInsertUpdateQueryGenerator = pgDriver
Deprecated: Use PostgreSQL variable directly. PgInsertUpdateQueryGenerator is kept for backward compatibility.
type SqliteInsertUpdateQueryGenerator
deprecated
type SqliteInsertUpdateQueryGenerator = sqliteDriver
Deprecated: Use SQLite variable directly. SqliteInsertUpdateQueryGenerator is kept for backward compatibility.
Click to show internal directories.
Click to hide internal directories.