more examples

This commit is contained in:
Lunny Xiao 2023-10-30 13:50:16 +08:00
parent 7a9cb6aa52
commit fe7f3e857f
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
2 changed files with 28 additions and 4 deletions

View File

@ -13,12 +13,14 @@ 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) {

View File

@ -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)
} }