https://github.com/enorith/database
Database component for Enorith
https://github.com/enorith/database
database orm query-builder
Last synced: 6 months ago
JSON representation
Database component for Enorith
- Host: GitHub
- URL: https://github.com/enorith/database
- Owner: enorith
- Created: 2020-09-02T02:12:13.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-03-11T09:37:59.000Z (over 5 years ago)
- Last Synced: 2024-06-19T05:46:18.638Z (about 2 years ago)
- Topics: database, orm, query-builder
- Language: Go
- Homepage:
- Size: 107 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Database component for [Enorith](https://github.com/enorith/framework)
## Usage
```go
package main
import (
_ "github.com/go-sql-driver/mysql"
"github.com/enorith/database"
"fmt"
"github.com/enorith/database/rithythm"
)
type User struct {
rithythm.Model
}
func (u *User) GetTable() string {
return "users"
}
func (u *User) Clone() rithythm.DataModel {
return &User{}
}
func main() {
builder := rithythm.Hold(&User{}).Query().GroupBy("area_id").
JoinWith("inner", "areas", func(clause *database.JoinClause) {
clause.AndOn("area_id", "=", "areas.id")
clause.AndWhereNotNull("area_id")
}).AndWhereNest(func(builder *database.QueryBuilder) {
builder.AndWhere("users.id", ">", 12)
}).
Select(database.Raw("count(users.id) as users_count"), "area_id", "areas.name").
SortDesc("area_id")
collection,_ := builder.Get()
var (
count int
areaId int
name string
)
defer collection.Close()
for collection.NextAndScan(&count, &areaId, &name) {
fmt.Println(count, areaId, name)
}
}
```