91 lines
3.2 KiB
Smarty
91 lines
3.2 KiB
Smarty
# gocraft/dbr (database records)
|
|
|
|
[](https://godoc.org/github.com/gocraft/dbr)
|
|
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fgocraft%2Fdbr?ref=badge_shield)
|
|
[](https://goreportcard.com/report/github.com/gocraft/dbr)
|
|
[](https://circleci.com/gh/gocraft/dbr)
|
|
|
|
gocraft/dbr provides additions to Go's database/sql for super fast performance and convenience.
|
|
|
|
```
|
|
$ go get -u github.com/gocraft/dbr/v2
|
|
```
|
|
|
|
```go
|
|
import "github.com/gocraft/dbr/v2"
|
|
```
|
|
|
|
## Driver support
|
|
|
|
* MySQL
|
|
* PostgreSQL
|
|
* SQLite3
|
|
|
|
## Examples
|
|
|
|
See [godoc](https://godoc.org/github.com/gocraft/dbr) for more examples.
|
|
|
|
### Open connections
|
|
|
|
{{ "ExampleOpen" | example }}
|
|
|
|
### Create and use Tx
|
|
|
|
{{ "ExampleTx" | example }}
|
|
|
|
### SelectStmt loads data into structs
|
|
|
|
{{ "ExampleSelectStmt_Load" | example }}
|
|
|
|
### SelectStmt with where-value interpolation
|
|
|
|
{{ "ExampleSelectStmt_Where" | example }}
|
|
|
|
### SelectStmt with joins
|
|
|
|
{{ "ExampleSelectStmt_Join" | example }}
|
|
|
|
### SelectStmt with raw SQL
|
|
|
|
{{ "ExampleSelectBySql" | example }}
|
|
|
|
### InsertStmt adds data from struct
|
|
|
|
{{ "ExampleInsertStmt_Record" | example }}
|
|
|
|
### InsertStmt adds data from value
|
|
|
|
{{ "ExampleInsertStmt_Pair" | example }}
|
|
|
|
|
|
## Benchmark (2018-05-11)
|
|
|
|
```
|
|
BenchmarkLoadValues/sqlx_10-8 5000 407318 ns/op 3913 B/op 164 allocs/op
|
|
BenchmarkLoadValues/dbr_10-8 5000 372940 ns/op 3874 B/op 123 allocs/op
|
|
BenchmarkLoadValues/sqlx_100-8 2000 584197 ns/op 30195 B/op 1428 allocs/op
|
|
BenchmarkLoadValues/dbr_100-8 3000 558852 ns/op 22965 B/op 937 allocs/op
|
|
BenchmarkLoadValues/sqlx_1000-8 1000 2319101 ns/op 289339 B/op 14031 allocs/op
|
|
BenchmarkLoadValues/dbr_1000-8 1000 2310441 ns/op 210092 B/op 9040 allocs/op
|
|
BenchmarkLoadValues/sqlx_10000-8 100 17004716 ns/op 3193997 B/op 140043 allocs/op
|
|
BenchmarkLoadValues/dbr_10000-8 100 16150062 ns/op 2394698 B/op 90051 allocs/op
|
|
BenchmarkLoadValues/sqlx_100000-8 10 170068209 ns/op 31679944 B/op 1400053 allocs/op
|
|
BenchmarkLoadValues/dbr_100000-8 10 147202536 ns/op 23680625 B/op 900061 allocs/op
|
|
```
|
|
|
|
## Thanks & Authors
|
|
Inspiration from these excellent libraries:
|
|
* [sqlx](https://github.com/jmoiron/sqlx) - various useful tools and utils for interacting with database/sql.
|
|
* [Squirrel](https://github.com/lann/squirrel) - simple fluent query builder.
|
|
|
|
Authors:
|
|
* Jonathan Novak -- [https://github.com/cypriss](https://github.com/cypriss)
|
|
* Tai-Lin Chu -- [https://github.com/taylorchu](https://github.com/taylorchu)
|
|
* Sponsored by [UserVoice](https://eng.uservoice.com)
|
|
|
|
Contributors:
|
|
* Paul Bergeron -- [https://github.com/dinedal](https://github.com/dinedal) - SQLite dialect
|
|
|
|
## License
|
|
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fgocraft%2Fdbr?ref=badge_large)
|