Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xujiajun/godbal
Database Abstraction Layer (dbal) for Go. Support SQL builder and get result easily (now only support mysql)
https://github.com/xujiajun/godbal
dbal golang mysql sqlbuilder
Last synced: about 1 month ago
JSON representation
Database Abstraction Layer (dbal) for Go. Support SQL builder and get result easily (now only support mysql)
- Host: GitHub
- URL: https://github.com/xujiajun/godbal
- Owner: xujiajun
- License: mit
- Created: 2018-02-28T05:47:42.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-01-30T05:57:00.000Z (over 5 years ago)
- Last Synced: 2024-01-30T04:45:13.886Z (4 months ago)
- Topics: dbal, golang, mysql, sqlbuilder
- Language: Go
- Homepage:
- Size: 50.8 KB
- Stars: 59
- Watchers: 6
- Forks: 29
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- awesome-go-cn - godbal
- awesome-go-extra - godbal - 02-28T05:47:42Z|2019-01-30T05:57:00Z| (Generators / SQL Query Builders)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- awesome-go-projects - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Standard CLI)
- awesome-go - godbal - | - | - | (Database / Advanced Console UIs)
- awesome-go-with-framework - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- go-awesome-cn-star - godbal
- awesome-go-cn - godbal
- awesome-go-stars - godbal(stars: 59) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- awesome-go-with-stars - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- repo-1316-awesome-go-cn - godbal
- repo-1211-awesome-go-cn - godbal
- awesome-Char - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- awesome-reader - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- Go-awesome - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- awesome-go-cn - godbal
- awesome-go-cn - godbal
- awesome-go-zh - godbal
- awesome-go-handwritten - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- awesome-go2 - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. - :arrow_down:0 - :star:43 (Database / Advanced Console UIs)
- awesome-go-cn - godbal
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / Advanced Console UIs)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. (Database / SQL Query Builders)
- awesome-go - godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily (now only support mysql) - ★ 48 (Database)
README
# godbal [![GoDoc](https://godoc.org/github.com/xujiajun/godbal/driver/mysql?status.svg)](https://godoc.org/github.com/xujiajun/godbal/driver/mysql) [![GoDoc](https://godoc.org/github.com/xujiajun/godbal?status.svg)](https://godoc.org/github.com/xujiajun/godbal) [![Go Report Card](https://goreportcard.com/badge/github.com/xujiajun/godbal)](https://goreportcard.com/report/github.com/xujiajun/godbal) [![Coverage Status](https://coveralls.io/repos/github/xujiajun/godbal/badge.svg?branch=master)](https://coveralls.io/github/xujiajun/godbal?branch=master) [![License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://raw.githubusercontent.com/xujiajun/godbal/master/LICENSE) [![Awesome](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go#database)
Database Abstraction Layer (dbal) for go (now only support mysql)## Motivation
I wanted a DBAL that ***No ORM***、***No Reflect***、***Concurrency Save***, support ***SQL builder*** following good practices and well tested code.
## Requirements
Go 1.7 or above.
## Installation
```
go get github.com/xujiajun/godbal
```## Supported Databases
* mysql
## Getting Started
Godbal helps you build SQL queries from composable parts easily:
```
database, _ := godbal.NewMysql("root:123@tcp(127.0.0.1:3306)/test?charset=utf8").Open()
queryBuilder := mysql.NewQueryBuilder(database)
sql := queryBuilder.Select("uid,username,price,flag").From("userinfo", "").SetFirstResult(0).
SetMaxResults(3).OrderBy("uid", "DESC").GetSQL()fmt.Println(sql)
```Output:
```
SELECT uid,username,price,flag FROM userinfo ORDER BY uid DESC LIMIT 0,3
```Godbal helps you get result easily:
```
rows, _ := queryBuilder.QueryAndGetMap()
jsonString, _ := json.Marshal(&rows)
fmt.Print(string(jsonString))```
Output like:
```
{"0":{"flag":"1","price":"111.00","uid":"6","username":"johnny2"},"1":{"flag":"1","price":"111.00","uid":"5","username":"johnny2"},"2":{"flag":"0","price":"123.99","uid":"4","username":"joe"}}
```### Full example:
```
package mainimport (
"encoding/json"
"fmt"_ "github.com/go-sql-driver/mysql"
"github.com/xujiajun/godbal"
"github.com/xujiajun/godbal/driver/mysql"
)func main() {
database, err := godbal.NewMysql("root:123@tcp(127.0.0.1:3306)/test?charset=utf8").Open()
if err != nil {
panic(err)
}err = database.Ping()
if err != nil {
panic(err)
}queryBuilder := mysql.NewQueryBuilder(database)
sql := queryBuilder.Select("uid,username,price,flag").From("userinfo", "").SetFirstResult(0).
SetMaxResults(3).OrderBy("uid", "DESC").GetSQL()fmt.Println(sql) // SELECT uid,username,price,flag FROM userinfo ORDER BY uid DESC LIMIT 0,3
rows, _ := queryBuilder.QueryAndGetMap()
jsonString, _ := json.Marshal(&rows)
fmt.Print(string(jsonString))
// result like: {"0":{"flag":"1","price":"111.00","uid":"6","username":"johnny2"},"1":{"flag":"1","price":"111.00","uid":"5","username":"johnny2"},"2":{"flag":"0","price":"123.99","uid":"4","username":"joe"}}
}```
## More examples
* [select](https://github.com/xujiajun/godbal/blob/master/examples/select/main.go)
* [insert](https://github.com/xujiajun/godbal/blob/master/examples/insert/main.go)
* [delete](https://github.com/xujiajun/godbal/blob/master/examples/delete/main.go)
* [update](https://github.com/xujiajun/godbal/blob/master/examples/update/main.go)
* [join](https://github.com/xujiajun/godbal/blob/master/examples/join/main.go)
* [transaction](https://github.com/xujiajun/godbal/blob/master/examples/transaction/main.go)
## Contributing
If you'd like to help out with the project. You can put up a Pull Request.
## Author
* [xujiajun](https://github.com/xujiajun)
## License
The godbal is open-sourced software licensed under the [MIT Licensed](http://www.opensource.org/licenses/MIT)