go,从数据库里面查出来的数据,这么给到对应的struct?

我有一个user model:

type User struct {
    Id            uint      `model:"id"`
    Username      string    `model:"username"`
    MobileNo      string    `model:"mobile_no"`
    Password      string    `model:"password"`
    Email         string    `model:"email"`
    EmailVerified uint8     `model:"email_verified"`
    CreateTime    uint      `model:"create_time"`
    UpdateTime    uint      `model:"uptime_time"`
}

上面tag里面的对应数据库的字段名称。
我用QueryRow查了一行数据处理。
然后我要用scan函数,把数据库的值给变量。
比如create_time,那我是不是要根据tag动态的取创建一个名字为create_time的变量,然后用scan(&create_time)把值取出来,然后在User.CreateTime=create_time这样一个一个赋值给usermodel?如果是,那我怎么动态创建create_time这个变量?

阅读 5.6k
3 个回答

我建议你自己封装一个库,或者使用XORM,这样你就不用自己一个个scan了,试试XORM:http://www.xorm.io

确实是很麻烦的,可以用反射。

可以直接row.Scan(&user.CreateTime).

用sqlmapper非常轻量简单,只有一个文件
基础的增删改查都包含了,连硬编码的sql string都不用写,非常方便
https://github.com/arthas29/s...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题