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,
|
||
|
}
|
||
|
}
|