Documentation ¶
Overview ¶
自定义 ENUM 类型 type XXX byte const AAA XXX = '0'
Index ¶
- Variables
- func CreateSchema(schemaName string) error
- func CreateTable[T IEntity]() error
- func Delete[T IEntity](params map[string]any) (int, error)
- func DeleteByName(tblName string, params map[string]any) (int, error)
- func DisableTransaction()
- func DropTable[T IEntity]() error
- func ExecuteSql(sqlStr string, values ...any) (int, error)
- func GetColumnName(tblName string) []string
- func GetPrimaryKey[T IEntity]() []string
- func GetPrimaryKeyByName(tblName string) ([]string, error)
- func GetTableName[T IEntity]() string
- func InitDao(dmDSN string) (context.Context, error)
- func InitDaoOracle(crmsDSN string) (context.Context, error)
- func Insert[T IEntity](entities ...T) error
- func InsertMap[T IEntity](entities ...map[string]any) error
- func InsertMapByName(tblName string, entities ...map[string]any) error
- func InsertNotZero[T IEntity](entities ...T) error
- func QueryMap(sqlStr string, values ...any) ([]map[string]any, error)
- func RegBoolType()
- func RegEnumByteType()
- func RegNumberType()
- func Select[T IEntity](p *PageInfo, params map[string]any, sqlStrAppend ...string) ([]T, error)
- func SelectByStruct[T IEntity](p *PageInfo, t T, sqlStrAppend ...string) ([]T, error)
- func SelectCount[T IEntity](where map[string]any) (int, error)
- func SelectCountByName(tblName string, where map[string]any) (int, error)
- func SelectMap[T IEntity](p *PageInfo, params map[string]any, sqlStrAppend ...string) ([]map[string]any, error)
- func SelectMapByName(tblName string, p *PageInfo, params map[string]any, sqlStrAppend ...string) ([]map[string]any, error)
- func SelectMapCamel[T IEntity](p *PageInfo, params map[string]any, sqlStrAppend ...string) ([]map[string]any, error)
- func SelectMapColumns[T IEntity](p *PageInfo, params map[string]any, columns []string, sqlStrAppend ...string) ([]map[string]any, error)
- func SelectMapColumnsByName(tblName string, p *PageInfo, params map[string]any, columns []string, ...) ([]map[string]any, error)
- func SelectRow[T IEntity](columnName string, params map[string]any, sqlStrAppend ...string) (any, error)
- func SelectRowByName(tblName string, columnName string, params map[string]any, ...) (any, error)
- func SetDefaultCtx(ctx context.Context)
- func StructToMap(t any, filterZeroField, filterAutoIncrementField bool) map[string]any
- func TableExists(tblName string) bool
- func ToLittleCamelMap(t any) map[string]any
- func ToUpperMap(t any) map[string]any
- func Transaction(fun func() error) error
- func TrunTable[T IEntity]() error
- func Update[T IEntity](entities ...T) (int, error)
- func UpdateMap[T IEntity](where map[string]any, set map[string]any) (int, error)
- func UpdateMapByName(tblName string, where map[string]any, set map[string]any) (int, error)
- func UpdateMapConditions[T IEntity](wheres []map[string]any, set map[string]any) (int, error)
- func UpdateMapConditionsByName(tblName string, wheres []map[string]any, set map[string]any) (int, error)
- type BoolType
- type Entity
- type EnumType
- type IEntity
- type NumericType
- type PageInfo
- type TableColumn
Constants ¶
This section is empty.
Variables ¶
var SchemaName = "SYSDBA" // 模式
Functions ¶
func CreateTable ¶
CreateTable creates a new table
主键primaryKey;列名column:User_Name;长度size:12;非空not null;索引index;默认default
@return error
func DeleteByName ¶ added in v1.0.12
DeleteByName 根据表名删除
@param tblName string 表名 @param params map[string]any 删除条件 @return int 删除数量 @return error 错误
func ExecuteSql ¶ added in v1.0.18
ExecuteSql 执行 sql 语句
@param sqlStr string sql进行查询 @param values ...any sql中?对应的结果 @return int 返回影响的行数 @return error 错误
func GetColumnName ¶
GetColumnName 取列名(从dm库中取)
@param tblName 表名,格式: SchemaName.TblName @return []string 列名表
func GetPrimaryKeyByName ¶ added in v1.0.13
GetPrimaryKeyByName 获取主键
@param tblName string 表名 @return []string 主键名称 @return error 错误
func InitDao ¶
InitDao 初始化数据库
注册自定义类型: RegEnumByteType RegBoolType(dm.BIT) RegNumberType(dm.NUMBER,dm.NUMERIC)
@param dmDSN string dm://SYSDBA:SYSDBA001@localhost:5236 @return context.Context 数据层上下文 @return error 错误
func InitDaoOracle ¶ added in v1.0.16
InitDaoOracle 初始化 oracle
应用需要 import _ "github.com/godror/godror"
Go数据库驱动列表:https://github.com/golang/go/wiki/SQLDrivers
@param crmsDSN string @return context.Context 数据上下文 @return error 错误
func Insert ¶
Insert 插入数据(不要用指针类型!!!不要用指针类型!!!不要用指针类型!!!)
不过滤空值: struct 初始化的字段也会入库, 如 string 字段会以*空白字串*入库
@param entities ...T 插入数据 @return error 错误
func InsertMap ¶ added in v1.0.12
InsertMap 插入数据
@param entities ...map[string]any 插入数据 @return error 错误
func InsertMapByName ¶ added in v1.0.12
InsertMapByName 根据表名插入数据
@param tblName string 表名 @param entities ...map[string]any 插入数据 @return error 错误
func InsertNotZero ¶ added in v1.0.16
InsertNotZero 插入数据(不要用指针类型!!!不要用指针类型!!!不要用指针类型!!!)
过滤0值(bool:false, int:0, string:""), string字段入库后为 NULL
@param entities ...T 插入数据 @return error 错误
func QueryMap ¶ added in v1.0.16
QueryMap 执行sql指令进行查询
用于多表联查,或其他复杂的情况
@param sqlStr string sql进行查询 @param values ...any sql中?对应的值 @return []map[string]any 结果集 @return error 错误
func RegNumberType ¶ added in v1.0.18
func RegNumberType()
RegNumberType dm 和 oracle Number/Numeric 类型转为 float64
func Select ¶
Select 查询, 返回 struct
@param p *PageInfo 分页 @param params map[string]any 查询条件 @param sqlStrAppend string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []T 返回结果集 @return error 错误
func SelectByStruct ¶ added in v1.0.16
SelectByStruct 查询,条件用 IEntity 实例, 返回 struct
@param p *PageInfo 分页 @param t T 只接受非0值, 若查查询 bool:false int:0 string:"" 的条件,可在 sqlStrAppend 拼接 @param sqlStrAppend string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []T 返回结果集 @return error 错误
func SelectCount ¶
SelectCount 查询 count(1)
@param where map[string]any 查询条件 @return int count(1) @return error 错误
func SelectCountByName ¶ added in v1.0.9
SelectCountByName 根据表名查询 count(1)
@param tblName string 表名 @param where map[string]any 查询条件 @return int count(1) @return error 错误
func SelectMap ¶
func SelectMap[T IEntity](p *PageInfo, params map[string]any, sqlStrAppend ...string) ([]map[string]any, error)
SelectMap 查询返回 map(key 全大写)
@param p *PageInfo 分页 @param params map[string]any 查询条件 @param sqlStrAppend string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []map[string]any 返回结果集 @return error 错误
func SelectMapByName ¶
func SelectMapByName(tblName string, p *PageInfo, params map[string]any, sqlStrAppend ...string) ([]map[string]any, error)
SelectMapByName 根据表名查询, 返回 map
@param tblName string 表名 @param p *PageInfo 分页 @param params map[string]any 查询条件 @param sqlStrAppend string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []map[string]any 返回结果集 @return error 错误
func SelectMapCamel ¶ added in v1.1.7
func SelectMapCamel[T IEntity](p *PageInfo, params map[string]any, sqlStrAppend ...string) ([]map[string]any, error)
SelectMap 查询返回 map(key camel 小驼峰)
@param p *PageInfo 分页 @param params map[string]any 查询条件 @param sqlStrAppend string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []map[string]any 返回结果集 @return error 错误
func SelectMapColumns ¶ added in v1.0.9
func SelectMapColumns[T IEntity](p *PageInfo, params map[string]any, columns []string, sqlStrAppend ...string) ([]map[string]any, error)
SelectMapColumns 返回 map 指定列名
@param p *PageInfo 分页 @param params map[string]any 查询条件 @param columns []string 查询列 @param sqlStrAppend string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []map[string]any 返回结果集 @return error 错误
func SelectMapColumnsByName ¶ added in v1.0.9
func SelectMapColumnsByName(tblName string, p *PageInfo, params map[string]any, columns []string, sqlStrAppend ...string) ([]map[string]any, error)
SelectMapColumnsByName 根据表名查询, 返回 map 指定列名
**所有 SelectMap 基于此**
@param tblName string 表名 @param p *PageInfo 分页 @param params map[string]any 查询条件 @param columns []string 查询列 @param sqlStrAppend string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []map[string]any 返回结果集 @return error 错误
func SelectRow ¶ added in v1.0.9
func SelectRow[T IEntity](columnName string, params map[string]any, sqlStrAppend ...string) (any, error)
SelectRow 查询首行指定列的值
@param columnName string 列名 @param params map[string]any 查询条件 @param sqlStrAppend string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return any 无效查询返回 nil @return error
func SelectRowByName ¶ added in v1.0.9
func SelectRowByName(tblName string, columnName string, params map[string]any, sqlStrAppend ...string) (any, error)
SelectRowByName 查询首行指定列的值
@param tblName string 表名 @param columnName string 列名 @param params map[string]any 查询条件 @param sqlStrAppend string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return any 无效查询返回 nil @return error
func SetDefaultCtx ¶ added in v1.0.16
SetDefaultCtx 设置默认 ctx
@param ctx context.Context 用于多个 context 时切换, 之后执行 sql 时对应此 context
func StructToMap ¶ added in v1.1.2
StructToMap 结构体转 map
@param t any 不能是指针!!! @param filterZeroField bool 过滤0值字段(bool-false, int-0, string-"", nil) @param filterAutoIncrementField bool 过滤自增字段(用于 insert) @return map [string]any 结果数据
func Update ¶
Update 更新 Struct
@param entities ...T 替换数据(**不能是指针! 不能是指针! 不能是指针!**) @return int 替换数量 @return error 错误
func UpdateMap ¶ added in v1.0.12
UpdateMap UpdateOne 更新(单个条件)
@param where map[string]any 查询条件 @param set map[string]any 替换数据 @return int 替换数量 @return error 错误
func UpdateMapByName ¶ added in v1.0.12
UpdateMapByName 根据表名更新(单个条件)
@param tblName string 表名 @param where map[string]any 查询条件 @param set map[string]any 替换数据 @return int 替换数量 @return error 错误
func UpdateMapConditions ¶ added in v1.0.12
UpdateMapConditions 更新(多条件)
@param wheres []map[string]any 查询条件 @param set map[string]any 替换数据 @return int 替换数量 @return error 错误
func UpdateMapConditionsByName ¶ added in v1.0.12
func UpdateMapConditionsByName(tblName string, wheres []map[string]any, set map[string]any) (int, error)
UpdateMapConditionsByName 根据表名更新
所有 Update 基于此
@param tblName string 表名 @param wheres []map[string]any 查询条件 @param set map[string]any 替换数据 @return int 替换数量(更新数据量为 0 没有符合条件的数据) @return error 错误
Types ¶
type BoolType ¶ added in v1.0.18
type BoolType struct{}
func (BoolType) ConverDriverValue ¶ added in v1.0.18
func (e BoolType) ConverDriverValue(ctx context.Context, columnType *sql.ColumnType, tempDriverValue driver.Value, structFieldType *reflect.Type) (interface{}, error)
ConverDriverValue 数据库列类型,GetDriverValue返回的driver.Value的临时接收值,struct属性类型 非struct类型接收,无法获取到structFieldType,会传入nil 返回符合接收类型值的指针,指针,指针!!!!
type Entity ¶
type Entity struct{}
Entity 实现 IEntity
func (Entity) GetDefaultValue ¶ added in v1.2.0
GetDefaultValue 获取列的默认值Map,用于Insert和Update Struct对象,UpdateNotZeroValue请使用BindContextMustUpdate方法.返回map的key是Struct属性名,value是默认值,value可以是nil.
func (Entity) GetPkSequence ¶
func (Entity) GetPrimaryKey ¶
GetPrimaryKey 表的主键, 返回 nil 时忽略此函数; 否则以此函数为准, 忽略 tag中的 primaryKey 配置
func (Entity) GetTableName ¶
GetTableName 返回struct类型名;需要struct自行实现
type EnumType ¶
type EnumType struct{}
func (EnumType) ConverDriverValue ¶
func (e EnumType) ConverDriverValue(ctx context.Context, columnType *sql.ColumnType, tempDriverValue driver.Value, structFieldType *reflect.Type) (interface{}, error)
ConverDriverValue 数据库列类型,GetDriverValue返回的driver.Value的临时接收值,struct属性类型 非struct类型接收,无法获取到structFieldType,会传入nil 返回符合接收类型值的指针,指针,指针!!!!
type IEntity ¶
type IEntity interface { zorm.IEntityStruct GetPrimaryKey() []string // 主键 }
type NumericType ¶ added in v1.0.14
type NumericType struct{}
func (NumericType) ConverDriverValue ¶ added in v1.0.14
func (e NumericType) ConverDriverValue(ctx context.Context, columnType *sql.ColumnType, tempDriverValue driver.Value, structFieldType *reflect.Type) (interface{}, error)
ConverDriverValue 数据库列类型,GetDriverValue返回的driver.Value的临时接收值,struct属性类型 非struct类型接收,无法获取到structFieldType,会传入nil 返回符合接收类型值的指针,指针,指针!!!!
func (NumericType) GetDriverValue ¶ added in v1.0.14
func (e NumericType) GetDriverValue(ctx context.Context, columnType *sql.ColumnType, structFieldType *reflect.Type) (driver.Value, error)
GetDriverValue 根据数据库列类型,返回driver.Value的实例,struct属性类型 非struct类型接收,无法获取到structFieldType,会传入nil
type PageInfo ¶
type PageInfo struct { PageNo int `json:"pageNo,omitempty"` PageSize int `json:"pageSize,omitempty"` TotalCount int `json:"totalCount,omitempty"` }
PageInfo 分页数据
type TableColumn ¶
type TableColumn struct { ColumnName string // 数据表字段名(字段名or由columns定义) StructFieldName string // 结构体字段名称 ColumnType string // 数据表中的类型定义 Comment string PrimaryKey bool NotNull bool Unique bool Index bool AutoIncrement bool // 自增 Default string }
TableColumn 数据列定义
func GetColumns ¶
func GetColumns[T IEntity]() []TableColumn
GetColumns 取列定义
@return []TableColumn 数据列定义表(列名大写)