Skip to content

Commit 3b28ae0

Browse files
committed
feat: add module crud method
1 parent a1278e6 commit 3b28ae0

2 files changed

Lines changed: 63 additions & 0 deletions

File tree

init_sqlagent.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package sqlagent

module_sqlagent.go

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package sqlagent
2+
3+
import (
4+
"github.com/jmoiron/sqlx"
5+
"database/sql"
6+
"context"
7+
sq "gopkg.in/Masterminds/squirrel.v1"
8+
)
9+
10+
var (
11+
defaultAgent *SqlAgent
12+
)
13+
14+
// Close SqlAgent inited by module init method.
15+
func Close() error {
16+
return defaultAgent.Close()
17+
}
18+
19+
// DB return sqlx.DB held by module SqlAgent.
20+
func DB() *sqlx.DB {
21+
return defaultAgent.DB()
22+
}
23+
24+
func Transaction(ctx context.Context, opt *sql.TxOptions, fn func(tx *sqlx.Tx) error) error {
25+
return defaultAgent.Transaction(ctx, opt, fn)
26+
}
27+
28+
// InsertBuilder return squirrel.InsertBuilder for table into
29+
// into: insert table name
30+
func InsertBuilder(into string) sq.InsertBuilder {
31+
return defaultAgent.InsertBuilder(into)
32+
}
33+
34+
func UpdateBuilder(table string) sq.UpdateBuilder {
35+
return defaultAgent.UpdateBuilder(table)
36+
}
37+
38+
func DeleteBuilder(table string) sq.DeleteBuilder {
39+
return defaultAgent.DeleteBuilder(table)
40+
}
41+
42+
func SelectBuilder(columns ...string) sq.SelectBuilder {
43+
return defaultAgent.SelectBuilder(columns...)
44+
}
45+
46+
// ExecContext exec sql built by sq.InsertBuilder/sq.UpdateBuilder/sq.DeleteBuilder and return result.
47+
// builder: sq.InsertBuilder, sq.UpdateBuilder or sq.DeleteBuilder
48+
func ExecContext(ctx context.Context, builder sq.Sqlizer) (sql.Result, error) {
49+
return defaultAgent.ExecContext(ctx, builder)
50+
}
51+
52+
// GetContext get one record by sql built by sq.SelectBuilder and scan to dest.
53+
// builder: sq.SelectBuilder
54+
func GetContext(ctx context.Context, builder sq.Sqlizer, dest interface{}) error {
55+
return defaultAgent.GetContext(ctx, builder, dest)
56+
}
57+
58+
// SelectContext get one or multi records by sql built by sq.SelectBuilder and scan to dest.
59+
// builder: sq.SelectBuilder
60+
func SelectContext(ctx context.Context, builder sq.Sqlizer, dest interface{}) error {
61+
return defaultAgent.SelectContext(ctx, builder, dest)
62+
}

0 commit comments

Comments
 (0)