Documentation ¶
Overview ¶
自定义 ENUM 类型 type XXX byte const AAA XXX = '0'
- @Author: haifengat hubert28@qq.com
- @Date: 2023-06-12 13:35:21
- @LastEditors: haifengat hubert28@qq.com
- @LastEditTime: 2023-06-12 15:28:10
- @FilePath: /zorm-dm/entity.go
- @Description: DML
Index ¶
- func CreateSchema(ctx context.Context) error
- func CreateTable[T IEntity](ctx context.Context) (err error)
- func Delete[T IEntity](ctx context.Context, where map[string]any) (int, error)
- func DeleteByName(ctx context.Context, tblName string, params map[string]any) (int, error)
- func DisableTransaction(ctx context.Context) context.Context
- func DropTable[T IEntity](ctx context.Context) error
- func ExecuteSql(ctx context.Context, sqlStr string, values ...any) (int, error)
- func FixMaps[T IEntity](ctx context.Context, maps []map[string]any) (mm []map[string]any)
- func FixQryParams[T IEntity](ctx context.Context, qry map[string]string) (where map[string]any, err error)
- func GetColumnName(ctx context.Context, tblName string) []string
- func GetPrimaryKey[T IEntity](ctx context.Context) []string
- func GetPrimaryKeyByName(ctx context.Context, tblName string) ([]string, error)
- func GetTableName[T IEntity](ctx context.Context) string
- func InitDao(dao zorm.DataSourceConfig, schemaName string) (context.Context, error)
- func InitDaoDM(dmDSN, schemaName string) (context.Context, error)
- func InitDaoOracle(oraDSN, schemaName string) (context.Context, error)
- func InitDaoPostgres(pgDSN, schemaName string) (context.Context, error)
- func Insert[T IEntity](ctx context.Context, filterZeroField bool, entities ...T) (n int, err error)
- func InsertMap[T IEntity](ctx context.Context, mm ...map[string]any) (n int, err error)
- func InsertMapByName(ctx context.Context, tblName string, entities ...map[string]any) error
- func QueryMap(ctx context.Context, sqlStr string, values ...any) ([]map[string]any, error)
- func RegBoolType()
- func RegEnumByteType()
- func RegNumberType()
- func Select[T IEntity](ctx context.Context, p *PageInfo, where map[string]any, sqlStrAppend ...string) ([]T, error)
- func SelectByStruct[T IEntity](ctx context.Context, p *PageInfo, t T, sqlStrAppend ...string) ([]T, error)
- func SelectCount[T IEntity](ctx context.Context, where map[string]any) (int, error)
- func SelectCountByName(ctx context.Context, tblName string, where map[string]any) (int, error)
- func SelectMap[T IEntity](ctx context.Context, p *PageInfo, where map[string]any, sqlStrAppend ...string) ([]map[string]any, error)
- func SelectMapColumns[T IEntity](ctx context.Context, p *PageInfo, where map[string]any, columns []string, ...) ([]map[string]any, error)
- func SelectMapColumnsByName(ctx context.Context, tblName string, p *PageInfo, where map[string]any, ...) ([]map[string]any, error)
- func SelectRow[T IEntity](ctx context.Context, columnName string, where map[string]any, ...) (any, error)
- func SelectRowByName(ctx context.Context, tblName string, columnName string, params map[string]any, ...) (any, error)
- func StructToMap(ctx context.Context, t any, filterZeroField, filterAutoIncrementField bool) (mm map[string]any)
- func ToCamel[T IEntity](ctx context.Context, m map[string]any) map[string]any
- func ToCamels[T IEntity](ctx context.Context, maps []map[string]any) (mm []map[string]any)
- func ToLittleCamelKey(t map[string]any) map[string]any
- func ToUpperKey(t map[string]any) map[string]any
- func Transaction(ctx context.Context, fun func(ctx context.Context) error) error
- func TrunTable[T IEntity](ctx context.Context) error
- func Update[T IEntity](ctx context.Context, entities []T, filterZero bool) (n int, err error)
- func UpdateMap[T IEntity](ctx context.Context, where map[string]any, set map[string]any) (n int, err error)
- func UpdateMapByName(ctx context.Context, tblName string, where map[string]any, set map[string]any) (n int, err error)
- type BoolType
- type CtxKey
- type Entity
- type EnumType
- type IEntity
- type NumericType
- type PageInfo
- type TableColumn
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateTable ¶
CreateTable creates a new table
主键primaryKey;列名column:User_Name;长度size:12;非空not null;索引index;默认default
@param ctx @return err
func Delete ¶
Delete 删除
@param ctx @param where map[string]any 删除条件 @return int 删除数量 @return error 错误
func DeleteByName ¶
DeleteByName 根据表名删除
@param ctx @param tblName string 表名 @param params map[string]any 删除条件 @return int 删除数量 @return error 错误
func DisableTransaction ¶ added in v2.0.2
DisableTransaction 关闭事务
@param ctx 上下文 @return context.Context 返回新的上下文
func ExecuteSql ¶
ExecuteSql 执行 sql 语句
@param ctx @param sqlStr string sql进行查询 @param values ...any sql中?对应的结果 @return int 返回影响的行数 @return error 错误
func FixQryParams ¶ added in v2.1.6
func FixQryParams[T IEntity](ctx context.Context, qry map[string]string) (where map[string]any, err error)
FixQryParams qry参数(map[string]string) 转换为 T 对应类型的 where条件(map[string]any)
@param ctx @param qry @return where @return err
func GetColumnName ¶
GetColumnName 取列名(从dm库中取)
@param ctx @param tblName 表名,格式: SchemaName.TblName @return []string 列名表
func GetPrimaryKeyByName ¶
GetPrimaryKeyByName 获取指定表名的主键
@param ctx @param tblName string 表名 @return []string 主键名称 @return error 错误
func GetTableName ¶
GetTableName 取表名
@param ctx @return string SchemaName.TblName(DM:Camel PG:snake)
func InitDao ¶
InitDao InitDaoDM 初始化数据库
注册自定义类型: RegEnumByteType RegBoolType(dm.BIT) RegNumberType(dm.NUMBER,dm.NUMERIC)
@param dao 参见: Go数据库驱动列表:https://github.com/golang/go/wiki/SQLDrivers @return context.Context 数据层上下文 @return error 错误
func InitDaoDM ¶
InitDaoDM 初始化数据库
注册自定义类型: RegEnumByteType RegBoolType(dm.BIT) RegNumberType(dm.NUMBER,dm.NUMERIC)
@param dmDSN string dm://SYSDBA:SYSDBA001@localhost:5236 @return context.Context 数据层上下文 @return error 错误
func InitDaoOracle ¶
InitDaoOracle 初始化 oracle
应用需要 import _ "github.com/godror/godror"
Go数据库驱动列表:https://github.com/golang/go/wiki/SQLDrivers
@param crmsDSN string @return context.Context 数据上下文 @return error 错误
func InitDaoPostgres ¶ added in v2.1.0
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 插入数据(不要用指针类型!!!不要用指针类型!!!不要用指针类型!!!)
@param ctx @param filterZeroField bool 是否过滤空值[推荐:false](string:"",int:0,bool:false) @param entities ...T 插入数据 @return n int 成功数量 @return err
func InsertMap ¶
InsertMap 插入数据
@param ctx @param mm ...map[string]any 插入数据 @return n 插入数量 @return err
func InsertMapByName ¶
InsertMapByName 根据表名插入数据
@param ctx @param tblName 表名 @param entities 插入数据 @return error 错误
func QueryMap ¶
QueryMap 执行sql指令进行查询
用于多表联查,或其他复杂的情况
@param ctx @param sqlStr string sql进行查询 @param values ...any sql中?对应的值 @return []map[string]any 结果集 @return error 错误
func Select ¶
func Select[T IEntity](ctx context.Context, p *PageInfo, where map[string]any, sqlStrAppend ...string) ([]T, error)
Select 查询, 返回 struct
@param ctx @param p *PageInfo 分页 @param where map[string]any 查询条件 @param sqlStrAppend ...string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []T 返回结果集 @return error 错误
func SelectByStruct ¶
func SelectByStruct[T IEntity](ctx context.Context, p *PageInfo, t T, sqlStrAppend ...string) ([]T, error)
SelectByStruct 查询,条件用 IEntity 实例, 返回 struct
@param ctx @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 ctx @param where map[string]any 查询条件 @return int count(1) @return error 错误
func SelectCountByName ¶
SelectCountByName 根据表名查询 count(1)
@param ctx @param tblName string 表名 @param where map[string]any 查询条件 @return int count(1) @return error 错误
func SelectMap ¶
func SelectMap[T IEntity](ctx context.Context, p *PageInfo, where map[string]any, sqlStrAppend ...string) ([]map[string]any, error)
SelectMap 返回 map 指定列名
@param ctx @param p *PageInfo 分页 @param where map[string]any 查询条件 @param sqlStrAppend ...string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []map[string]any 返回结果集 @return error 错误
func SelectMapColumns ¶
func SelectMapColumns[T IEntity](ctx context.Context, p *PageInfo, where map[string]any, columns []string, sqlStrAppend ...string) ([]map[string]any, error)
SelectMapColumns SelectMap 返回 map 指定列名
@param ctx @param p *PageInfo 分页 @param where map[string]any 查询条件 @param columns []string 指定列名(可用字段名,或 max(XX)) @param sqlStrAppend ...string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []map[string]any 返回结果集 @return error 错误
func SelectMapColumnsByName ¶
func SelectMapColumnsByName(ctx context.Context, tblName string, p *PageInfo, where map[string]any, columns []string, sqlStrAppend ...string) ([]map[string]any, error)
SelectMapColumnsByName 根据表名查询, 返回 map 指定列名
@param ctx @param tblName string 表名 @param p *PageInfo 分页 @param where map[string]any 查询条件 @param columns []string 查询列 @param sqlStrAppend ...string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return []map[string]any 返回结果集 @return error 错误
func SelectRow ¶
func SelectRow[T IEntity](ctx context.Context, columnName string, where map[string]any, sqlStrAppend ...string) (any, error)
SelectRow 查询首行指定列的值
@param ctx @param columnName []string 列名 @param where map[string]any 查询条件 @param sqlStrAppend ...string sql拓展, 如 order by xxx, 不会被 fnd 替换 @return any 无效查询返回 nil @return error
func SelectRowByName ¶
func SelectRowByName(ctx context.Context, tblName string, columnName string, params map[string]any, sqlStrAppend ...string) (any, error)
SelectRowByName 查询首行指定列的值
@param ctx @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 StructToMap ¶
func StructToMap(ctx context.Context, t any, filterZeroField, filterAutoIncrementField bool) (mm map[string]any)
StructToMap 结构体转 map(key Camel大驼峰格式)
@param ctx @param t any 不能是指针!!! @param filterZeroField bool 过滤0值字段(bool-false, int-0, string-"", nil) @param filterAutoIncrementField bool 过滤自增字段(用于 insert/update) @return mm
func ToLittleCamelKey ¶ added in v2.1.0
ToLittleCamelKey 小写 camel
@param t @return map [string]any 结果数据(ID转id)
func Transaction ¶
Transaction 使用事务
@param ctx @param fun func() error 使用了什么代码就抛出什么错误 @return error 错误
func Update ¶
Update 更新 Struct
@param ctx @param entities []T 替换数据(**不能是指针! 不能是指针! 不能是指针!**) @param filterZero 是否过滤零值(会影响 int:0, bool:false, string: "") @return n int 成功数量 @return err error
Types ¶
type BoolType ¶
type BoolType struct{}
func (BoolType) ConverDriverValue ¶
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 CtxKey ¶ added in v2.1.0
type CtxKey string
const DM CtxKey = "DM"
const ORACLE CtxKey = "oracle"
const PG CtxKey = "postgresql"
const DM DialectType = "DM"
const Schema CtxKey = "schemaName"
type Entity ¶
type Entity struct{}
Entity 实现 IEntity
func (Entity) GetDefaultValue ¶ added in v2.0.3
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 ¶
type NumericType struct{}
func (NumericType) ConverDriverValue ¶
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 ¶
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](ctx context.Context) []TableColumn
GetColumns 取列定义
@param ctx @return []TableColumn 数据列定义