Skip to content

Commit

Permalink
增加:upsert,insertOr,insertOrReplace,insertOrGet方法
Browse files Browse the repository at this point in the history
  • Loading branch information
tietang committed Jan 28, 2023
1 parent fbf6baf commit ee115b2
Show file tree
Hide file tree
Showing 19 changed files with 920 additions and 158 deletions.
18 changes: 14 additions & 4 deletions dbx.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import (
// //Host: "172.16.1.248:3306",
// Database: "po0",
// MaxOpenConns: 10,
// MaxIdleConns: 2,
// MaxIdleConns: d,
// ConnMaxLifetime: time.Minute * 30,
// LoggingEnabled: true,
// Options: map[string]string{
Expand All @@ -37,7 +37,7 @@ var _ LoggerSettings = new(Database)

func Open(settings Settings) (db *Database, err error) {
db = &Database{}
db.DB, err = sql.Open(settings.DriverName, settings.DataSourceName())
db.DB, err = sql.Open(settings.DriverName, settings.GetDataSourceName())
if err != nil {
panic(err)
}
Expand Down Expand Up @@ -79,7 +79,12 @@ type Database struct {
}

func (r *Database) Tx(fn func(run *TxRunner) error) error {
tx, err := r.DB.Begin()
return r.TxContext(context.Background(), fn)
}

func (r *Database) TxContext(ctx context.Context, fn func(run *TxRunner) error) error {

tx, err := r.DB.BeginTx(ctx, nil)

if err != nil {
return err
Expand Down Expand Up @@ -164,6 +169,7 @@ func (r *Database) ping() {

type Settings struct {
DriverName string
DataSourceName string
Protocol string
User string
Password string
Expand All @@ -176,7 +182,10 @@ type Settings struct {
LoggingEnabled bool
}

func (s *Settings) DataSourceName() string {
func (s *Settings) GetDataSourceName() string {
if s.DataSourceName != "" {
return s.DataSourceName
}
queryString := ""
for key, value := range s.Options {
queryString += key + "=" + value + "&"
Expand All @@ -185,6 +194,7 @@ func (s *Settings) DataSourceName() string {
if s.Protocol == "http" {
ustr = fmt.Sprintf("http://%s:%s@%s/%s?%s", s.User, s.Password, s.Host, s.Database, queryString)
}
s.DataSourceName = ustr

return ustr
}
Expand Down
7 changes: 5 additions & 2 deletions example/ck/batch/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
)

type DubboSlowConsumer struct {
Service string `db:"service"`
Service string `db:"services"`
Method string `db:"method"`
ResTimeMs float64 `db:"responseTime_MS"`
}
Expand Down Expand Up @@ -49,7 +49,7 @@ func main() {
fmt.Println(err)
second := time.Now().Second()
jsonStr := " {\"appName\":\"dzpl-aiproxy@local\",\"empty\":false,\"hostName\":\"172.22.5.204:8080\",\"interval\":1," +
"\"metricsList\":[{\"bizErrorCount\":0,\"cost\":9693783,\"count\":2,\"errorCount\":0,\"failure40xCount\":0,\"failure50xCount\":0,\"failureCount\":0,\"httpMethod\":\"POST\",\"requestByteSize\":142,\"responseByteSize\":0,\"seconds\":1668736686,\"uri\":\"/api/proxy/keyword/spotting\"}]," +
"\"metricsList\":[{\"bizErrorCount\":0,\"cost\":9693783,\"count\":d,\"errorCount\":0,\"failure40xCount\":0,\"failure50xCount\":0,\"failureCount\":0,\"httpMethod\":\"POST\",\"requestByteSize\":142,\"responseByteSize\":0,\"seconds\":1668736686,\"uri\":\"/api/proxy/keyword/spotting\"}]," +
"\"seconds\":" + strconv.Itoa(second) + "}"
mp := make(map[string]interface{})
err = json.Unmarshal([]byte(jsonStr), &mp)
Expand Down Expand Up @@ -88,6 +88,9 @@ func main() {
log.Fatal(err)
}
stmt, err := tx.Prepare(sql)
if err != nil {
log.Fatal(err)
}
rs, err := stmt.Exec(args...)
if err != nil {
log.Fatal(err)
Expand Down
4 changes: 2 additions & 2 deletions example/ck/batch2/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
)

type DubboSlowConsumer struct {
Service string `db:"service"`
Service string `db:"services"`
Method string `db:"method"`
ResTimeMs float64 `db:"responseTime_MS"`
}
Expand Down Expand Up @@ -48,7 +48,7 @@ func main() {
fmt.Println(err)
second := time.Now().Second()
jsonStr := " {\"appName\":\"dzpl-aiproxy@local\",\"empty\":false,\"hostName\":\"172.22.5.204:8080\",\"interval\":1," +
"\"metricsList\":[{\"bizErrorCount\":0,\"cost\":9693783,\"count\":2,\"errorCount\":0,\"failure40xCount\":0,\"failure50xCount\":0,\"failureCount\":0,\"httpMethod\":\"POST\",\"requestByteSize\":142,\"responseByteSize\":0,\"seconds\":1668736686,\"uri\":\"/api/proxy/keyword/spotting\"}]," +
"\"metricsList\":[{\"bizErrorCount\":0,\"cost\":9693783,\"count\":d,\"errorCount\":0,\"failure40xCount\":0,\"failure50xCount\":0,\"failureCount\":0,\"httpMethod\":\"POST\",\"requestByteSize\":142,\"responseByteSize\":0,\"seconds\":1668736686,\"uri\":\"/api/proxy/keyword/spotting\"}]," +
"\"seconds\":" + strconv.Itoa(second) + "}"
mp := make(map[string]interface{})
err = json.Unmarshal([]byte(jsonStr), &mp)
Expand Down
6 changes: 3 additions & 3 deletions example/ck/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
)

type DubboSlowConsumer struct {
Service string `db:"service"`
Service string `db:"services"`
Method string `db:"method"`
ResTimeMs float64 `db:"responseTime_MS"`
}
Expand Down Expand Up @@ -44,10 +44,10 @@ func main() {
}
err = db.Ping()
fmt.Println(err)
sql := "SELECT service, method, sum(elapsed) / 1000000 as responseTime_MS " +
sql := "SELECT services, method, sum(elapsed) / 1000000 as responseTime_MS " +
" FROM m_dubbo " +
" WHERE dt >= toDateTime(?) AND dt <= toDateTime(?) and side = 'consumer' " +
" GROUP BY service, method " +
" GROUP BY services, method " +
" HAVING responseTime_MS > 1000"

var consumers []*DubboSlowConsumer
Expand Down
File renamed without changes.
24 changes: 24 additions & 0 deletions example/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
module example

go 1.19

require (
github.com/glebarez/go-sqlite v1.20.0
github.com/go-sql-driver/mysql v1.7.0
github.com/mailru/go-clickhouse/v2 v2.0.0
github.com/segmentio/ksuid v1.0.4
github.com/shopspring/decimal v1.3.1
github.com/tietang/dbx v1.0.3
)

require (
github.com/google/uuid v1.3.0 // indirect
github.com/mattn/go-isatty v0.0.16 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect
github.com/stretchr/testify v1.8.1 // indirect
golang.org/x/sys v0.2.0 // indirect
modernc.org/libc v1.21.5 // indirect
modernc.org/mathutil v1.5.0 // indirect
modernc.org/memory v1.4.0 // indirect
modernc.org/sqlite v1.20.0 // indirect
)
102 changes: 102 additions & 0 deletions example/go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
github.com/chzyer/logex v1.2.0/go.mod h1:9+9sk7u7pGNWYMkh0hdiL++6OeibzJccyQU4p4MedaY=
github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86cAH8qUic=
github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/glebarez/go-sqlite v1.20.0 h1:6D9uRXq3Kd+W7At+hOU2eIAeahv6qcYfO8jzmvb4Dr8=
github.com/glebarez/go-sqlite v1.20.0/go.mod h1:uTnJoqtwMQjlULmljLT73Cg7HB+2X6evsBHODyyq1ak=
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo=
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/mailru/go-clickhouse/v2 v2.0.0 h1:O+ZGJDwp/E5W19ooeouEqaOlg+qxA+4Zsfjt63QcnVU=
github.com/mailru/go-clickhouse/v2 v2.0.0/go.mod h1:TwxN829KnFZ7jAka9l9EoCV+U0CBFq83SFev4oLbnNU=
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/segmentio/ksuid v1.0.2/go.mod h1:BXuJDr2byAiHuQaQtSKoXh1J0YmUDurywOXgB2w+OSU=
github.com/segmentio/ksuid v1.0.4 h1:sBo2BdShXjmcugAMwjugoGUdUV0pcxY5mW4xKRn3v4c=
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff/go.mod h1:KSQcGKpxUMHk3nbYzs/tIBAM2iDooCn0BmttHOJEbLs=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
github.com/tietang/dbx v1.0.3 h1:73LFmv2oocFn9ZxtP/1J1A6OiyoqrpSRqQ9UE1Ewzqo=
github.com/tietang/dbx v1.0.3/go.mod h1:Fla/ZQ+LBZawehNmN/+cz2aQ62HaFoDOP70eQhJEI+U=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
modernc.org/cc/v3 v3.37.0/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20=
modernc.org/cc/v3 v3.38.1/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20=
modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0=
modernc.org/ccgo/v3 v3.0.0-20220904174949-82d86e1b6d56/go.mod h1:YSXjPL62P2AMSxBphRHPn7IkzhVHqkvOnRKAKh+W6ZI=
modernc.org/ccgo/v3 v3.0.0-20220910160915-348f15de615a/go.mod h1:8p47QxPkdugex9J4n9P2tLZ9bK01yngIVp00g4nomW0=
modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g=
modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY=
modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ=
modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
modernc.org/libc v1.17.4/go.mod h1:WNg2ZH56rDEwdropAJeZPQkXmDwh+JCA1s/htl6r2fA=
modernc.org/libc v1.18.0/go.mod h1:vj6zehR5bfc98ipowQOM2nIDUZnVew/wNC/2tOGS+q0=
modernc.org/libc v1.19.0/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0=
modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0=
modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI=
modernc.org/libc v1.21.5 h1:xBkU9fnHV+hvZuPSRszN0AXDG4M7nwPLwTWwkYcvLCI=
modernc.org/libc v1.21.5/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI=
modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=
modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
modernc.org/memory v1.3.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
modernc.org/memory v1.4.0 h1:crykUfNSnMAXaOJnnxcSzbUGMqkLWjklJKkBK2nwZwk=
modernc.org/memory v1.4.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
modernc.org/sqlite v1.20.0 h1:80zmD3BGkm8BZ5fUi/4lwJQHiO3GXgIUvZRXpoIfROY=
modernc.org/sqlite v1.20.0/go.mod h1:EsYz8rfOvLCiYTy5ZFsOYzoCcRMu98YYkwAcCw5YIYw=
modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
modernc.org/tcl v1.15.0/go.mod h1:xRoGotBZ6dU+Zo2tca+2EqVEeMmOUBzHnhIwq4YrVnE=
modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
modernc.org/z v1.7.0/go.mod h1:hVdgNMh8ggTuRG1rGU8x+xGRFfiQUIAw0ZqlPy8+HyQ=
File renamed without changes.
Binary file added example/some.db
Binary file not shown.
44 changes: 44 additions & 0 deletions example/sqllite/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package main

import (
"fmt"
_ "github.com/glebarez/go-sqlite"
"github.com/tietang/dbx"
)

var db *dbx.Database

func init() {
settings := dbx.Settings{
DriverName: "sqlite",
DataSourceName: "some.db?_pragma=busy_timeout(5000)&_pragma=journal_mode(WAL)",
LoggingEnabled: true,
}
sqlDb, err := dbx.Open(settings)
if err != nil {
panic(err)
}
db = sqlDb
db.SetLogging(true)
//db.RegisterTable(&EnvelopeGoods{}, "red_envelope_goods")
}

func main() {
// connect
//db, err := sql.Open("sqlite", ":memory:")
//
//db, err := sql.Open("sqlite", "./path/to/some.db")
//if err != nil {
// log.Fatal(err)
//}
//_ = db.QueryRow("select sqlite_version()")

// get SQLite version
//var v string
//err := db.GetValue(&v, "select sqlite_version()")
//v, err := db.GetString("select sqlite_version()")
v, err := db.GetString(" select datetime(CURRENT_TIMESTAMP,'localtime')")
fmt.Println(err)
fmt.Println(v)

}
13 changes: 6 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@ module github.com/tietang/dbx
go 1.12

require (
github.com/go-sql-driver/mysql v1.4.1
github.com/google/uuid v1.3.0 // indirect
github.com/mailru/go-clickhouse/v2 v2.0.0
github.com/segmentio/ksuid v1.0.2
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24
github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff
google.golang.org/appengine v1.6.5 // indirect
github.com/go-sql-driver/mysql v1.7.0
github.com/gopherjs/gopherjs v1.17.2 // indirect
github.com/segmentio/ksuid v1.0.4
github.com/shopspring/decimal v1.3.1
github.com/smartystreets/assertions v1.13.0 // indirect
github.com/smartystreets/goconvey v1.7.2
)
Loading

0 comments on commit ee115b2

Please sign in to comment.