写点什么

go 训练营第二周作业

用户头像
关注
发布于: 2021 年 06 月 06 日

1. 我们在数据库操作的时候,比如 dao 层中当遇到一个 sql.ErrNoRows 的时候,是否应该 Wrap 这个 error,抛给上层。为什么,应该怎么做请写出代码?


import (   "database/sql"   "github.com/pkg/errors")
type Customer struct { CustomerId string Name string}

var Db *sql.DB
func init() { var err error Db, err = sql.Open("mysql", "root:ttalbe@tcp(127.0.0.1:3306)/test?charset=utf8") if err != nil { panic(err) }}
func QueryCustomerById(id string) (Customer, error) { var customer Customer row := Db.QueryRow("select id ,name from customer where id = ?" ,id ) err := row.Scan(&customer.CustomerId,&customer.Name) if err != nil{ return customer,errors.Wrap(err,"dao#QueryCustomerById err") } return customer,nil}
复制代码


package main

import ("fmt""github.com/talbole/nuwa/crm/dao")


func main() {

defer dao.Db.Close()customer ,err :=dao.QueryCustomerById("123456")if err != nil{  fmt.Printf("query customer err : %+v",err)  return}fmt.Println("query customer : ",customer)
复制代码


}


发布于: 2021 年 06 月 06 日阅读数: 12
用户头像

关注

还未添加个人签名 2018.04.25 加入

还未添加个人简介

评论

发布
暂无评论
go训练营第二周作业