41 lines
643 B
Go
41 lines
643 B
Go
//
|
|
// query_builder.go
|
|
// Copyright (C) 2023 tiglog <me@tiglog.com>
|
|
//
|
|
// Distributed under terms of the MIT license.
|
|
//
|
|
|
|
package sqldb
|
|
|
|
import "reflect"
|
|
|
|
// 该功能用于改善记录查询,避免直接写表名
|
|
// TODO 实现 query builder
|
|
|
|
type join_item struct {
|
|
way string
|
|
table string
|
|
on string
|
|
}
|
|
|
|
type query_builder struct {
|
|
table string
|
|
fields string
|
|
conds []string
|
|
orderBy string
|
|
offset int
|
|
limit int
|
|
joins []join_item
|
|
}
|
|
|
|
func FromEntity(ent any) *query_builder {
|
|
tabM, err := dm.TableFor(reflect.TypeOf(ent), false)
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
|
|
return &query_builder{
|
|
table: tabM.TableName,
|
|
}
|
|
}
|