Documentation
¶
Index ¶
- Variables
- func RegisterFactory(driver string, factory SQLFactory)
- func UnregisterFactory(driver string)
- type ColumnInfo
- type Condition
- func Between(field string, start, end interface{}) *Condition
- func Eq(field string, value interface{}) *Condition
- func Ge(field string, value interface{}) *Condition
- func Gt(field string, value interface{}) *Condition
- func In(field string, values ...interface{}) *Condition
- func IsNotNull(field string) *Condition
- func IsNull(field string) *Condition
- func Le(field string, value interface{}) *Condition
- func Like(field string, value interface{}) *Condition
- func Lt(field string, value interface{}) *Condition
- func Ne(field string, value interface{}) *Condition
- func NewCondition(field string, op OpType, value interface{}) *Condition
- func NotBetween(field string, start, end interface{}) *Condition
- func NotIn(field string, values ...interface{}) *Condition
- func NotLike(field string, value interface{}) *Condition
- type ITableModel
- type JoinType
- type OpType
- type OrderBy
- type OrderType
- type Result
- type SQLFactory
- type TableInfo
Constants ¶
This section is empty.
Variables ¶
var Debug bool
Debug flag for enabling debug mode
Functions ¶
func RegisterFactory ¶
func RegisterFactory(driver string, factory SQLFactory)
RegisterFactory registers a SQL factory for a specific driver
func UnregisterFactory ¶
func UnregisterFactory(driver string)
UnregisterFactory removes a SQL factory for a specific driver
Types ¶
type ColumnInfo ¶
type ColumnInfo struct { Name string // 列名 Type string // 数据库类型 Length int64 // 长度 Precision int // 精度 Scale int // 小数位数 IsNullable bool // 是否可空 IsPrimaryKey bool // 是否主键 IsAutoIncrement bool // 是否自增 DefaultValue string // 默认值 Comment string // 注释 }
ColumnInfo 列信息
type Condition ¶
type Condition struct { Field string // Field name Op OpType // Operator type Value interface{} // Value to compare against Join JoinType // How this condition joins with others (AND/OR) SubConds []*Condition // Sub-conditions for nested queries IsSubGroup bool // Whether this is a sub-group of conditions }
Condition represents a where condition
func In ¶ added in v4.1.3
In creates an IN condition with variadic parameters that may include arrays
func NewCondition ¶ added in v4.1.3
NewCondition creates a new condition
func NotBetween ¶ added in v4.1.3
func NotIn ¶ added in v4.1.3
NotIn creates a NOT IN condition with variadic parameters that may include arrays
type ITableModel ¶
type ITableModel interface { // TableName returns the custom table name TableName() string // CreateSql returns the custom CREATE TABLE SQL statement CreateSql() string }
ITableModel defines the interface for custom table models
type OpType ¶ added in v4.1.3
type OpType int
OpType represents the type of condition operator
const ( OpEq OpType = iota // Equal OpNe // Not Equal OpGt // Greater Than OpGe // Greater Than or Equal OpLt // Less Than OpLe // Less Than or Equal OpLike // LIKE OpNotLike // NOT LIKE OpIn // IN OpNotIn // NOT IN OpIsNull // IS NULL OpIsNotNull // IS NOT NULL OpBetween // BETWEEN OpNotBetween // NOT BETWEEN )
type Result ¶
Result implements sql.Result interface
func (*Result) LastInsertId ¶
LastInsertId returns the last inserted ID
func (*Result) RowsAffected ¶
RowsAffected returns the number of rows affected
type SQLFactory ¶
type SQLFactory interface { // Connect creates a new database connection Connect(dsn string) (*sql.DB, error) // BuildSelect builds a SELECT query BuildSelect(table string, fields []string, conditions []*Condition, orderBy string, limit, offset int) (string, []interface{}) // BuildUpdate builds an UPDATE query BuildUpdate(table string, fields map[string]interface{}, conditions []*Condition) (string, []interface{}) // BuildInsert builds an INSERT query BuildInsert(table string, fields map[string]interface{}) (string, []interface{}) // BuildBatchInsert builds a batch INSERT query BuildBatchInsert(table string, values []map[string]interface{}) (string, []interface{}) // BuildDelete builds a DELETE query BuildDelete(table string, conditions []*Condition) (string, []interface{}) // BuildCreateTable builds a CREATE TABLE query BuildCreateTable(table string, modelType reflect.Type) string // GetTableInfo 获取表信息 GetTableInfo(db *sql.DB, tableName string) (*TableInfo, error) // GetTables 获取符合模式的所有表 // pattern: 表名匹配模式,支持 * 通配符 // 对于 PostgreSQL,pattern 可以是 schema.table 格式 GetTables(db *sql.DB, pattern string) ([]string, error) // BuildOrderBy builds the ORDER BY clause BuildOrderBy(orders []OrderBy) string }
SQLFactory defines the interface for SQL generation
func GetFactory ¶
func GetFactory(driver string) (SQLFactory, error)
GetFactory returns the SQL factory for a specific driver