feat: 新增 ScanRows 接口

This commit is contained in:
2024-09-18 16:51:30 +08:00
parent 030343bc01
commit 1f9ff72824
9 changed files with 311 additions and 102 deletions

View File

@@ -34,7 +34,7 @@ type TableNamer interface {
### 示例
### 批量插入 -- 示例
```go
@@ -52,12 +52,12 @@ func (u *User) SuperTableName() string {
}
func TestSimpleInsert(t *testing.T) {
tdMapping := NewTdMapping()
tdMapper := NewMapper()
data := []any{
&User{Name: "张三", Age: 18},
&User{Name: "李四", Age: 20},
}
insertSql, err := tdMapping.ToInsertSQL(data...)
insertSql, err := tdMapper.ToInsertSQL(data...)
if err != nil {
t.Fatal(err)
}
@@ -70,6 +70,44 @@ INSERT INTO
`user_李四` USING `super_user` (`name`) TAGS ('李四') (`age`) VALUES (20)
```
### 查询映射 -- 示例
```go
func QueryOne(db *sql.DB) (*User,error){
tdMapper := NewMapper()
rows,err:=db.Query("select * from User limit 100")
if err!=nil {
return err
}
def rows.Close()
var user User
if err:=ScanRows(&user,rows);err!=nil {
return err
}
return &user, nil
}
// 如果查询结果数量为0则返回 sql.ErrNoRows
// var ErrNoRows = errors.New("sql: no rows in result set")
func QueryAll(db *sql.DB)([]*User, error) {
tdMapper := NewMapper()
rows,err:=db.Query("select * from User limit 100")
if err!=nil {
return err
}
def rows.Close()
var users []*User
if err:=ScanRows(&users,rows);err!=nil {
return err
}
return &users, nil
}
```