Skip to content

Commit f249631

Browse files
committed
update readme
1 parent 1bbba2c commit f249631

1 file changed

Lines changed: 28 additions & 25 deletions

File tree

README.md

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,18 @@ funsql
1010
目前已经支持大部分的sql操作语句。
1111

1212
funsql拼装后的结果包含sql语句和绑定参数两部分,可以非常方便的将这两个参数传入标准sql包进行执行。
13+
1314
增加了scan支持,可将标准库sql包返回的rows直接绑定到自定义的结构体切片内。
1415

16+
## 快速开始
1517
```go
16-
sql,binds,err := funsql.Table("users").Where("age",">",10).Select()
17-
//输出
18+
sqlStr,args,err := funsql.Table("users").Where("age",">",10).Select()
19+
row,err := sql.Query(sqlStr,args...)
20+
//输出sql 与 args 可以直接作为sql标准库Query()的入参。
1821
//sql: select * from users where age > ?
1922
//binds: []int{10,}
2023
//err: nil
24+
2125
```
2226
## 入口函数 Table()
2327
为了简化语句,每次sql拼装都必须首先执行入口函数。入口函数会返回*FunBuilder实例作为后续链式操作de基础对象。
@@ -48,29 +52,6 @@ funsql 使用链式调用进行sql拼装,但是最终都必须以 **结果函
4852
funsql.Table("users").Select("name","age")
4953
```
5054

51-
## Scan使用
52-
Scan支持二维结构体切片与一维切片,适用于查询多条多字段数据和多条单个字段数据。结构体可选使用tag fs作为字段标识,不存在tag fs时使用小写形式的字段名。
53-
54-
### 多条多字段使用
55-
```go
56-
type Order struct {
57-
ID int64 `fs:"id"`
58-
OrderNo string `fs:"order_no"`
59-
}
60-
orders := make([]Order, 0)
61-
err = Scan(rows, &orders)
62-
63-
```
64-
65-
### 多条单个字段
66-
67-
```go
68-
orderIDs := make([]int64, 0)
69-
err = Scan(rows, &orderIDs)
70-
71-
```
72-
73-
7455
## Select
7556
在调用Select不传入操作时默认为 * 。当然大部分时候并不希望返回数据库表的所有列,此时可以指定需要的字段即可。
7657
字段名必须为字符串类型。
@@ -181,6 +162,28 @@ funsql.Table("users").WhereNotBetween("age","=",10).OrWhere("age","=",20).
181162
GroupBy("sex","age").Having("age",">",10).Limit(5).Offset(3).Select()
182163
```
183164

165+
## Scan使用
166+
Scan支持二维结构体切片与一维切片,适用于查询多条多字段数据和多条单个字段数据。结构体可选使用tag fs作为字段标识,不存在tag fs时使用小写形式的字段名。
167+
168+
### 多条多字段使用
169+
```go
170+
type Order struct {
171+
ID int64 `fs:"id"`
172+
OrderNo string `fs:"order_no"`
173+
}
174+
orders := make([]Order, 0)
175+
err = Scan(rows, &orders)
176+
177+
```
178+
179+
### 多条单个字段
180+
181+
```go
182+
orderIDs := make([]int64, 0)
183+
err = Scan(rows, &orderIDs)
184+
185+
```
186+
184187

185188

186189

0 commit comments

Comments
 (0)