https://github.com/twharmon/gosql
SQL query builder for Go
https://github.com/twharmon/gosql
Last synced: 9 months 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 6 years ago)
- Default Branch: main
- Last Pushed: 2022-04-12T15:59:32.000Z (over 3 years ago)
- Last Synced: 2024-07-31T20:49:54.752Z (over 1 year 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-cn - gosql
- awesome-go-plus - gosql - SQL Query builder with better null values support.  (Database / SQL Query Builders)
- awesome-go - gosql - SQL Query builder with better null values support. (Database / SQL Query Builders)
- awesome-go - gosql - SQL Query builder with better null values support. (Database / SQL Query Builders)
- awesome-go-with-stars - gosql - SQL Query builder with better null values support. (Database / SQL Query Builders)
- fucking-awesome-go - gosql - SQL Query builder with better null values support. (Database / SQL Query Builders)
- awesome-go-cn - gosql
- awesome-go-cn - gosql
- 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)
- awesome-go - gosql - SQL Query builder with better null values support. (Database / SQL Query Builders)
- awesome-go - gosql - SQL Query builder with better null values support. (Database / SQL Query Builders)
- awesome-Char - gosql - SQL Query builder with better null values support. (Database / Advanced Console UIs)
README
# GoSQL
[](https://pkg.go.dev/github.com/twharmon/gosql)  [](https://goreportcard.com/report/github.com/twharmon/gosql) [](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: "gopher@example.com",
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 = "gosql@example.com"
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