https://github.com/laoqiu/sqlx-builder
一个简单的sqlx的链式操作插件
https://github.com/laoqiu/sqlx-builder
database golang sqlx
Last synced: 9 days ago
JSON representation
一个简单的sqlx的链式操作插件
- Host: GitHub
- URL: https://github.com/laoqiu/sqlx-builder
- Owner: laoqiu
- Created: 2018-08-14T08:54:46.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-11-11T05:42:24.000Z (about 5 years ago)
- Last Synced: 2025-08-14T09:42:47.128Z (6 months ago)
- Topics: database, golang, sqlx
- Language: Go
- Size: 56.6 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# sqlx-builder
用于实现sqlx的链式操作
## 安装
```
go get github.com/laoqiu/sqlx-builder
```
### 初始化
```
import (
sqlxb "github.com/laoqiu/sqlx-builder"
)
db, err := sqlxb.Connect()
if err != nil {
return err
}
// 加载mapper
builder.LoadMapper(db, sqlxb.DefaultMapper)
```
### 支持的链式操作
```
dest := &Person{}
p := map[string]interface{}{
"phone": "13012345678",
}
debug := true
query = sqlxb.Table("tablename").Join("table2", "table2.id = table1.t_id").
Where("name like ?", "%name%").
Where("address = ?", "test").
Where("phone = :phone", p)
err := sqlxb.New(db, query, debug).First(dest)
if err != nil {
log.Println(err)
}
```
### 支持的函数及结构体
* Builder
```
func New(*sqlx.DB, *Query, debug bool) *Builder
func NewTx(*sqlx.Tx, *Query, debug bool) *Builder
func (st *Builder) Insert(data interface{}) error
func (st *Builder) Update(data interface{}) error
func (st *Builder) Delete() error
func (st *Builder) Get(dest interface{}) (sql.Result, error)
func (st *Builder) All(dest interface{}) (sql.Result, error)
```
* Query
```
func Table(tablename) *Query
func (q *Query) Distinct() *Query
func (q *Query) Select(...fields) *Query
func (q *Query) Join(table, condition, label) *Query
func (q *Query) LeftJoin(table, condition, label) *Query
func (q *Query) RightJoin(table, condition, label) *Query
func (q *Query) UnionJoin(table, condition, label) *Query
func (q *Query) Where(condition, ...args) *Query
func (q *Query) Limit(n) *Query
func (q *Query) Offset(n) *Query
```
* func Connect
* func LoadMapper