Documentation
¶
Overview ¶
Package core 定义了 sqlx 的领域层接口与核心类型。 它提供了纯抽象接口、Row/Rows 数据结构、绑定变量工具 以及不依赖具体数据库实现的扫描与查询函数。
Index ¶
- Constants
- Variables
- func BindDriver(driverName string, bindType int)
- func BindType(driverName string) int
- func FieldsByTraversal(v reflect.Value, traversals [][]int, values []any, ptrs bool) error
- func Get(q Queryer, dest any, query string, args ...any) error
- func In(query string, args ...any) (string, []any, error)
- func IsScannable(t reflect.Type) bool
- func MapScan(r ColScanner, dest map[string]any) error
- func Mapper() *reflectx.Mapper
- func MustExec(e Execer, query string, args ...any) sql.Result
- func Rebind(bindType int, query string) string
- func RebindBuff(bindType int, query string) string
- func ScanAll(rows Rowsi, dest any, structOnly bool, unsafe bool) error
- func Select(q Queryer, dest any, query string, args ...any) error
- func SliceScan(r ColScanner) ([]any, error)
- func StructScan(rows Rowsi, dest any) error
- type Binder
- type ColScanner
- type Execer
- type Ext
- type Preparer
- type Queryer
- type Row
- func (r *Row) ColumnTypes() ([]*sql.ColumnType, error)
- func (r *Row) Columns() ([]string, error)
- func (r *Row) Err() error
- func (r *Row) MapScan(dest map[string]any) error
- func (r *Row) Scan(dest ...any) error
- func (r *Row) ScanAny(dest any, structOnly bool) error
- func (r *Row) SliceScan() ([]any, error)
- func (r *Row) StructScan(dest any) error
- type Rows
- type Rowsi
Constants ¶
View Source
const ( UNKNOWN = iota QUESTION DOLLAR NAMED AT )
Variables ¶
View Source
var NameMapper = strings.ToLower
NameMapper 用于将列名映射到结构体字段名。默认情况下, 它使用 strings.ToLower 将结构体字段名转为小写。
Functions ¶
func BindDriver ¶
BindDriver 将 driverName 的 BindType 设置为 bindType。
func FieldsByTraversal ¶
FieldsByTraversal 根据 traversals 中的路径,用传递的 value 的字段填充 values 接口切片。
func MapScan ¶
func MapScan(r ColScanner, dest map[string]any) error
MapScan 将单行扫描到 dest map[string]any 中。
func RebindBuff ¶
RebindBuff 是 Rebind 的实验性实现,使用 bytes.Buffer。 代码更简单,应当更能抵抗奇特的 unicode,但速度慢两倍。
Types ¶
type Binder ¶
type Binder interface {
DriverName() string
Rebind(string) string
BindNamed(string, any) (string, []any, error)
}
Binder 是能够绑定查询的接口。
type ColScanner ¶
ColScanner 是 MapScan 和 SliceScan 使用的接口。
type Queryer ¶
type Queryer interface {
Query(query string, args ...any) (*sql.Rows, error)
Queryx(query string, args ...any) (*Rows, error)
QueryRowx(query string, args ...any) *Row
}
Queryer 是 Get 和 Select 使用的接口。
type Row ¶
type Row struct {
Unsafe bool
Rows *sql.Rows
Mapper *reflectx.Mapper
// contains filtered or unexported fields
}
Row 是对 sql.Row 的重新实现,目的是能够访问底层 sql.Rows.Columns() 数据, 这是 StructScan 所必需的。
func (*Row) ColumnTypes ¶
func (r *Row) ColumnTypes() ([]*sql.ColumnType, error)
ColumnTypes 返回底层 sql.Rows.ColumnTypes(),或延迟错误。
Click to show internal directories.
Click to hide internal directories.