Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/twharmon/gosql
SQL query builder for Go
https://github.com/twharmon/gosql
Last synced: 14 days ago
JSON representation
SQL query builder for Go
- Host: GitHub
- URL: https://github.com/twharmon/gosql
- Owner: twharmon
- License: mit
- Created: 2020-01-08T17:13:09.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2022-04-12T15:59:32.000Z (over 2 years ago)
- Last Synced: 2024-07-31T20:49:54.752Z (3 months ago)
- Language: Go
- Homepage: https://twharmon.gitbook.io/gosql/
- Size: 182 KB
- Stars: 30
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - gosql - SQL Query builder with better null values support. (Database / SQL Query Builders)
- awesome-go-extra - gosql - 01-08T17:13:09Z|2022-04-12T15:59:32Z| (Generators / SQL Query Builders)
README
# GoSQL
[![Go Reference](https://pkg.go.dev/badge/github.com/twharmon/gosql.svg)](https://pkg.go.dev/github.com/twharmon/gosql) ![](https://github.com/twharmon/gosql/workflows/Test/badge.svg) [![](https://goreportcard.com/badge/github.com/twharmon/gosql)](https://goreportcard.com/report/github.com/twharmon/gosql) [![codecov](https://codecov.io/gh/twharmon/gosql/branch/main/graph/badge.svg?token=K0P59TPRAL)](https://codecov.io/gh/twharmon/gosql)
Query builder with some handy utility functions.
## Documentation
For full documentation see the [pkg.go.dev](https://pkg.go.dev/github.com/twharmon/gosql?tab=doc).## Examples
```go
// Open database and create connection
sqliteDB, _ := sql.Open("sqlite3", "my-db.sql")
db := gosql.New(sqliteDB)// Define a struct that includes a primary key
type User struct {
ID int `idx:"primary"`
Email string
IsActive bool
}// Insert a row into the table
db.Insert(&User{
ID: 1,
Email: "[email protected]",
IsActive: true,
})// Select a row from the table
var user User
db.Select("*").Where("id = ?", 1).Get(&user)// Update the row in the table
user.Email = "[email protected]"
db.Update(&user)// Delete the row from the table
db.Delete(&user)
```## Benchmarks
```
BenchmarkInsert-10 5637 209484 ns/op 448 B/op 23 allocs/op
BenchmarkUpdate-10 90866 12887 ns/op 576 B/op 27 allocs/op
BenchmarkSelect-10 90318 13125 ns/op 768 B/op 41 allocs/op
BenchmarkSelectMany-10 12435 96761 ns/op 10640 B/op 838 allocs/op
BenchmarkSelectManyPtrs-10 10000 100512 ns/op 11248 B/op 938 allocs/op
```## Contribute
Make a pull request