方法一:将结构体对应字段类型设为指针类型,一劳永逸,不用担心json序列化与反序列化问题

// User 用户结构体(对应mysql表)
type User struct {Id         int       `db:"id"`Code       *string   `db:"code"`NickName   string    `db:"nick_name"`Phone      string    `db:"phone"`Password   string    `db:"password"`CreateTime time.Time `db:"create_time"`Sex        int       `db:"sex"`Email      string    `db:"email"`
}

例如上述的Code字段,不设置为指针类型的话,查询时mysql里为null的话序列化就会出现“sqlx converting NULL to string is unsupported”,或者在设计表的时候字符串类型设计默认值为空字符串

方法二:将结构体对应字段设置为sql.NullString,另外构建一个结构体在应用使用

// User 用户结构体(对应mysql表)
type User struct {Id         int             `db:"id"`Code       sql.NullString  `db:"code"`NickName   sql.NullString  `db:"nick_name"`Phone      sql.NullString  `db:"phone"`Password   sql.NullString  `db:"password"`CreateTime format.JsonTime `db:"create_time"`Sex        int             `db:"sex"`Email      sql.NullString  `db:"email"`
}//应用层使用
type UEntity struct {Id         intCode       stringNickName   stringPhone      stringPassword   stringCreateTime format.JsonTimeSex        intEmail      string
}//数据库结构体与应用层使用的结构体转换
func copyValue(user User, uEntity UEntity) UEntity {uEntity.Id = user.IduEntity.Code = user.Code.StringuEntity.NickName = user.NickName.StringuEntity.Phone = user.Phone.StringuEntity.Password = user.Password.StringuEntity.CreateTime = user.CreateTimeuEntity.Email = user.Email.Stringreturn uEntity
}

解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)相关推荐

  1. C++ 线性表的结构体定义(顺序表和链式表)

    线性表的结构体定义: 1.顺序表的结构体定义 typedef struct {int data[maxSize];int length;} Sqlist; 2.单链表结点的结构体定义 typedef ...

  2. MySQL数据表的结构和设计及三范式

    文章目录 数据表的结构 数据表 列 行 冗余字段 主键 外键 表外键关系 1对1 1对n m对n 数据库表的设计 E-R图 实体 属性 关系 设计原则 三范式 ①原子性 ②非主属性依赖 ③传递性依赖 ...

  3. PAT甲级1141 PAT Ranking of Institutions :[C++题解]结构体、排序、哈希表、结构体构造函数、结构体内写函数、排名

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:和下面这题是一道题: PAT甲级1137 Final Grading:[C++题解]结构体.排序.哈希表.结构体构造函数.结构体内写函 ...

  4. redis 用scan 代替keys 解决百万数据模糊查询超时问题

    redis 用scan 代替keys 解决百万数据模糊查询超时问题 参考文章: (1)redis 用scan 代替keys 解决百万数据模糊查询超时问题 (2)https://www.cnblogs. ...

  5. c语言结构体数组存入文件_关于从文件中读取数据并写入结构体数组

    已结贴√ 问题点数:25 回复次数:10 关于从文件中读取数据并写入结构体数组 各位大大好,本人新手一枚,最近写简单的通讯录的c程序,其他功能完好,最后一个将txt文件中的数据写入结构体数组的函数无法 ...

  6. 数据库系统原理与应用教程(024)—— MySQL 修改数据表的结构

    数据库系统原理与应用教程(024)-- MySQL 修改数据表的结构 目录 数据库系统原理与应用教程(024)-- MySQL 修改数据表的结构 一.修改表名 二.更改数据表所使用的存储引擎 1.查看 ...

  7. mysql数据表查询

    关于ubuntu终端mysql数据表的查询命令 打开ubuntu终端,输入mysql -u(用户名)-p(密码) 密码确认之后会显示如下界面,接着就可在光标处输入命令. –查看所有的数据库,datab ...

  8. oracle 构造体数据修改,Rust结构体更新语法

    使用Struct更新语法从其他实例创建新实例. 当新实例使用旧实例的大部分值时,可以使用struct update语法.考虑两名员工employee1和employee2. 首先,创建Employee ...

  9. ABAP中不修改内表参照的结构,给内表/结构体增加字段

    参照的结构体中字段数不够,除了se11修改结构之外,还可以在声明时用INCLUDE,如果不修改结构,在SE37运行测试是看不到这个字段的. Definition TYPES|DATA:BEGIN OF ...

最新文章

  1. ASP.NET MVC 中将FormCollection与实体间转换方法
  2. 编码互换变量c语言,【剑仙教程】TC。字符 和字符编码 互换。
  3. 前端进阶-Event
  4. spring security源码分析之web包分析
  5. 搭建XSS (跨网站指令码) 测试平台
  6. oracle扩容日志文件,ORACLE 加大日志文件
  7. switch off c语言,逆向工程 | C 语言之 switch-case 分支
  8. 最优化读书笔记R(一)
  9. html的动画效果实现无限轮播,利用 CSS3 实现的无缝轮播功能代码
  10. [Twisted] Protocols协议和Protocol Factories 协议工厂
  11. Linux高性能server规划——多线程编程(在)
  12. 软件测试工程师,需要达到什么水平才能顺利拿到 20k+ 无压力?
  13. centos上自动执行脚本执行php文件
  14. Linux C聊天室的实现
  15. Navicat 添加唯一索引
  16. 高德经纬度、百度经纬度、标准经纬度相互转换(VB.NET)
  17. android usb 键盘,android4.4 修改USB外接法语键盘
  18. 微信小程序:页面路由
  19. 一文搞懂TCP/IP,入门计算机网络必看!
  20. 通达oa与php环境冲突,迁移通达OA过程中所遇到的数据库问题

热门文章

  1. PBS环境------qsub, qstat, qdel
  2. Macbook Air安装Win7与苹果双系统实操
  3. 支持DoH的DNS服务器,谷歌公共 DNS 服务器正式支持 DoH 加密
  4. [答疑]类图:支付手段和优惠券、金额、积分有关
  5. php 连接数据库有很多notice,PHP Notice: undefined index 完美解决方法
  6. CSDN博客中Markdown代码转为pdf
  7. 校园人脸识别系统开发需求有哪些
  8. 在当前项目组中引入敏捷开发思想
  9. Qt编写安防视频监控系统56-数据库分页
  10. 房间类游戏后台框架(四)—游戏服务器