more examples
This commit is contained in:
parent
7a9cb6aa52
commit
fe7f3e857f
|
@ -14,11 +14,13 @@ import (
|
|||
|
||||
type Executor[T any] struct {
|
||||
client xorm.Interface
|
||||
tableObj *T
|
||||
}
|
||||
|
||||
func New[T any](c xorm.Interface) *Executor[T] {
|
||||
return &Executor[T]{
|
||||
client: c,
|
||||
tableObj: new(T),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -42,8 +44,19 @@ func (q *Executor[T]) InsertOne(ctx context.Context, obj *T) error {
|
|||
return err
|
||||
}
|
||||
|
||||
func (q *Executor[T]) Insert(ctx context.Context, results []T) (int64, error) {
|
||||
return q.client.Insert(results)
|
||||
func (q *Executor[T]) InsertMap(ctx context.Context, result map[string]any) error {
|
||||
_, 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) {
|
||||
|
|
|
@ -45,4 +45,15 @@ func TestExecutor(t *testing.T) {
|
|||
users, err = executor.Where(builder.Eq{"id": 1}).All(context.Background())
|
||||
assert.NoError(t, err)
|
||||
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