Documentation
¶
Index ¶
- type ClickhouseDao
- func (receiver *ClickhouseDao[E]) All(entity E, opts ...QueryOption) ([]E, error)
- func (receiver *ClickhouseDao[E]) Count(entity E) (int64, error)
- func (receiver *ClickhouseDao[E]) Create(entity *E) error
- func (m *ClickhouseDao[E]) Debug() *ClickhouseDao[E]
- func (receiver *ClickhouseDao[E]) Delete(entity E) error
- func (receiver *ClickhouseDao[E]) Exists(entity E) bool
- func (receiver *ClickhouseDao[E]) MultiCreate(entities []*E) error
- func (receiver *ClickhouseDao[E]) One(entity E) (*E, error)
- func (receiver *ClickhouseDao[E]) Pager(conn *gorm.DB, page, size int) ([]E, *models.ResultPage, error)
- func (receiver *ClickhouseDao[E]) Save(entity *E) error
- func (receiver *ClickhouseDao[E]) Updates(entity *E) error
- func (m *ClickhouseDao[E]) Where(query interface{}, args ...interface{}) *gorm.DB
- func (m *ClickhouseDao[E]) WithContext(ctx *context.Context) *ClickhouseDao[E]
- type Dao
- type MgoDao
- func (m MgoDao[E]) All(query bson.M) ([]E, error)
- func (m MgoDao[E]) Delete(query bson.M) error
- func (m MgoDao[E]) Insert(entity *E) error
- func (m MgoDao[E]) One(query bson.M) (*E, error)
- func (m MgoDao[E]) Pager(query bson.M, sort []string, page, size int) ([]E, *models.ResultPage, error)
- func (m MgoDao[E]) Updates(id primitive.ObjectID, doc E) error
- type MySQLDao
- func (receiver *MySQLDao[E]) All(entity E, opts ...QueryOption) ([]E, error)
- func (receiver *MySQLDao[E]) Count(entity E) (int64, error)
- func (receiver *MySQLDao[E]) Create(entity *E) error
- func (m *MySQLDao[E]) Debug() *MySQLDao[E]
- func (receiver *MySQLDao[E]) Delete(entity E) error
- func (receiver *MySQLDao[E]) Exists(entity E) bool
- func (receiver *MySQLDao[E]) MultiCreate(entities []*E) error
- func (receiver *MySQLDao[E]) One(entity E) (*E, error)
- func (receiver *MySQLDao[E]) Pager(conn *gorm.DB, page, size int) ([]E, *models.ResultPage, error)
- func (receiver *MySQLDao[E]) Save(entity *E) error
- func (receiver *MySQLDao[E]) Updates(entity *E) error
- func (m *MySQLDao[E]) Where(query interface{}, args ...interface{}) *gorm.DB
- func (m *MySQLDao[E]) WithContext(ctx *context.Context) *MySQLDao[E]
- type PostgresDao
- func (receiver *PostgresDao[E]) All(entity E, opts ...QueryOption) ([]E, error)
- func (receiver *PostgresDao[E]) Count(entity E) (int64, error)
- func (receiver *PostgresDao[E]) Create(entity *E) error
- func (m *PostgresDao[E]) Debug() *PostgresDao[E]
- func (receiver *PostgresDao[E]) Delete(entity E) error
- func (receiver *PostgresDao[E]) Exists(entity E) bool
- func (receiver *PostgresDao[E]) MultiCreate(entities []*E) error
- func (receiver *PostgresDao[E]) One(entity E) (*E, error)
- func (receiver *PostgresDao[E]) Pager(conn *gorm.DB, page, size int) ([]E, *models.ResultPage, error)
- func (receiver *PostgresDao[E]) Save(entity *E) error
- func (receiver *PostgresDao[E]) Updates(entity *E) error
- func (m *PostgresDao[E]) Where(query interface{}, args ...interface{}) *gorm.DB
- func (m *PostgresDao[E]) WithContext(ctx *context.Context) *PostgresDao[E]
- type QueryOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClickhouseDao ¶
type ClickhouseDao[E schema.Tabler] struct { Tag func() string // contains filtered or unexported fields }
func (*ClickhouseDao[E]) All ¶
func (receiver *ClickhouseDao[E]) All(entity E, opts ...QueryOption) ([]E, error)
All clickhouse动态查询数据
func (*ClickhouseDao[E]) Count ¶
func (receiver *ClickhouseDao[E]) Count(entity E) (int64, error)
Count clickhouse统计记录数
func (*ClickhouseDao[E]) Create ¶
func (receiver *ClickhouseDao[E]) Create(entity *E) error
Create clickhouse动态插入数据
func (*ClickhouseDao[E]) Debug ¶
func (m *ClickhouseDao[E]) Debug() *ClickhouseDao[E]
func (*ClickhouseDao[E]) Delete ¶
func (receiver *ClickhouseDao[E]) Delete(entity E) error
Delete clickhouse动态删除数据
func (*ClickhouseDao[E]) Exists ¶
func (receiver *ClickhouseDao[E]) Exists(entity E) bool
Exists clickhouse动态查询是否存在数据
func (*ClickhouseDao[E]) MultiCreate ¶
func (receiver *ClickhouseDao[E]) MultiCreate(entities []*E) error
MultiCreate clickhouse动态插入多条数据
func (*ClickhouseDao[E]) One ¶
func (receiver *ClickhouseDao[E]) One(entity E) (*E, error)
One clickhouse动态查询一条数据
func (*ClickhouseDao[E]) Pager ¶
func (receiver *ClickhouseDao[E]) Pager(conn *gorm.DB, page, size int) ([]E, *models.ResultPage, error)
Pager clickhouse简单分页查询数据
func (*ClickhouseDao[E]) Save ¶
func (receiver *ClickhouseDao[E]) Save(entity *E) error
Save clickhouse动态保存数据
func (*ClickhouseDao[E]) Updates ¶
func (receiver *ClickhouseDao[E]) Updates(entity *E) error
Updates clickhouse动态更新数据
func (*ClickhouseDao[E]) Where ¶
func (m *ClickhouseDao[E]) Where(query interface{}, args ...interface{}) *gorm.DB
Where clickhouse动态查询数据
func (*ClickhouseDao[E]) WithContext ¶
func (m *ClickhouseDao[E]) WithContext(ctx *context.Context) *ClickhouseDao[E]
type Dao ¶
type Dao[E any] interface { Insert(entity *E) error Where(query interface{}, args ...interface{}) *gorm.DB Find(query interface{}, args ...interface{}) ([]E, error) FindById(id interface{}) (E, error) Update(entity *E) error Delete(entity *E) error Count() (int64, error) }
Dao[E] 是 mgin v2 扩展后的泛型 DAO 接口。
v1 时代仅包含 Insert(*E) error 一个方法,v2 扩展为与 db/dao/mysql.go、postgres.go、 clickhouse.go、mgo.go 等具体实现对齐的最小方法集。已有具体实现(MySQLDao 等)的方法 集合已经超过这个接口,因此把它们"补齐签名"以满足本接口即可。
注意:v2 Dao 接口仍然保持小而精,避免在接口里强加大量可选方法。具体实现可以 拥有接口之外的扩展方法(如 MySQLDao.Debug()、MySQLDao.WithContext()), 业务需要时直接断言到具体类型调用。
type MgoDao ¶
MgoDao 注意使用前必须先将CollectionName赋值
type MySQLDao ¶
type MySQLDao[E schema.Tabler] struct { Tag func() string // contains filtered or unexported fields }
func (*MySQLDao[E]) All ¶
func (receiver *MySQLDao[E]) All(entity E, opts ...QueryOption) ([]E, error)
All mysql动态查询数据
func (*MySQLDao[E]) MultiCreate ¶
MultiCreate mysql动态插入多条数据
type PostgresDao ¶
type PostgresDao[E schema.Tabler] struct { Tag func() string // contains filtered or unexported fields }
func (*PostgresDao[E]) All ¶
func (receiver *PostgresDao[E]) All(entity E, opts ...QueryOption) ([]E, error)
func (*PostgresDao[E]) Count ¶
func (receiver *PostgresDao[E]) Count(entity E) (int64, error)
func (*PostgresDao[E]) Create ¶
func (receiver *PostgresDao[E]) Create(entity *E) error
func (*PostgresDao[E]) Debug ¶
func (m *PostgresDao[E]) Debug() *PostgresDao[E]
func (*PostgresDao[E]) Delete ¶
func (receiver *PostgresDao[E]) Delete(entity E) error
func (*PostgresDao[E]) Exists ¶
func (receiver *PostgresDao[E]) Exists(entity E) bool
func (*PostgresDao[E]) MultiCreate ¶
func (receiver *PostgresDao[E]) MultiCreate(entities []*E) error
func (*PostgresDao[E]) One ¶
func (receiver *PostgresDao[E]) One(entity E) (*E, error)
func (*PostgresDao[E]) Pager ¶
func (receiver *PostgresDao[E]) Pager(conn *gorm.DB, page, size int) ([]E, *models.ResultPage, error)
func (*PostgresDao[E]) Save ¶
func (receiver *PostgresDao[E]) Save(entity *E) error
func (*PostgresDao[E]) Updates ¶
func (receiver *PostgresDao[E]) Updates(entity *E) error
func (*PostgresDao[E]) Where ¶
func (m *PostgresDao[E]) Where(query interface{}, args ...interface{}) *gorm.DB
func (*PostgresDao[E]) WithContext ¶
func (m *PostgresDao[E]) WithContext(ctx *context.Context) *PostgresDao[E]