more examples
This commit is contained in:
parent
7a9cb6aa52
commit
fe7f3e857f
|
@ -14,11 +14,13 @@ import (
|
||||||
|
|
||||||
type Executor[T any] struct {
|
type Executor[T any] struct {
|
||||||
client xorm.Interface
|
client xorm.Interface
|
||||||
|
tableObj *T
|
||||||
}
|
}
|
||||||
|
|
||||||
func New[T any](c xorm.Interface) *Executor[T] {
|
func New[T any](c xorm.Interface) *Executor[T] {
|
||||||
return &Executor[T]{
|
return &Executor[T]{
|
||||||
client: c,
|
client: c,
|
||||||
|
tableObj: new(T),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,8 +44,19 @@ func (q *Executor[T]) InsertOne(ctx context.Context, obj *T) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *Executor[T]) Insert(ctx context.Context, results []T) (int64, error) {
|
func (q *Executor[T]) InsertMap(ctx context.Context, result map[string]any) error {
|
||||||
return q.client.Insert(results)
|
_, err := q.client.Table(q.tableObj).Insert(result)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Executor[T]) Insert(ctx context.Context, results []T) error {
|
||||||
|
_, err := q.client.Insert(results)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Executor[T]) InsertMaps(ctx context.Context, results []map[string]any) error {
|
||||||
|
_, err := q.client.Table(q.tableObj).Insert(results)
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *Executor[T]) Exec(ctx context.Context) (sql.Result, error) {
|
func (q *Executor[T]) Exec(ctx context.Context) (sql.Result, error) {
|
||||||
|
|
|
@ -45,4 +45,15 @@ func TestExecutor(t *testing.T) {
|
||||||
users, err = executor.Where(builder.Eq{"id": 1}).All(context.Background())
|
users, err = executor.Where(builder.Eq{"id": 1}).All(context.Background())
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, len(users), 1)
|
assert.Equal(t, len(users), 1)
|
||||||
|
|
||||||
|
err = executor.InsertMap(context.Background(), map[string]any{
|
||||||
|
"name": "test2",
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
users, err = executor.All(context.Background())
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, len(users), 2)
|
||||||
|
assert.Equal(t, "test", users[0].Name)
|
||||||
|
assert.Equal(t, "test2", users[1].Name)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue