1 回答

TA贡献1873条经验 获得超9个赞
两者一旦退出就会被关闭,在这两个关闭后,您将无法再使用。connectionrowsQueryrows
解决这个问题的一种方法是传递一个闭包,并在关闭两个资源之前执行它:QueryQuery
func Query(query string, scan func(*sql.Rows) error) error {
connect, err := database.Connect()
if err != nil{
return err
}
defer connect.Close()
rows, err := connect.Query(query)
if err != nil{
return err
}
defer rows.Close()
return scan(rows)
}
func ProductList() ([]Hasil, error) {
var result []Hasil
err := model.Query("SELECT * FROM alamat_store", func(rows *sql.Rows) error {
for rows.Next() {
var each = Hasil{}
var err = rows.Scan(&each.Id_alamat_store, &each.Id_tk, &each.Alamat, &each.Id_wil, &each.Latitude, &each.Longitude)
if err != nil {
return err
}
result = append(result, each)
}
return nil
})
if err != nil {
return nil, err
}
return result, nil
}
- 1 回答
- 0 关注
- 78 浏览
添加回答
举报