解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)
方法一:将结构体对应字段类型设为指针类型,一劳永逸,不用担心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)相关推荐
- C++ 线性表的结构体定义(顺序表和链式表)
线性表的结构体定义: 1.顺序表的结构体定义 typedef struct {int data[maxSize];int length;} Sqlist; 2.单链表结点的结构体定义 typedef ...
- MySQL数据表的结构和设计及三范式
文章目录 数据表的结构 数据表 列 行 冗余字段 主键 外键 表外键关系 1对1 1对n m对n 数据库表的设计 E-R图 实体 属性 关系 设计原则 三范式 ①原子性 ②非主属性依赖 ③传递性依赖 ...
- PAT甲级1141 PAT Ranking of Institutions :[C++题解]结构体、排序、哈希表、结构体构造函数、结构体内写函数、排名
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:和下面这题是一道题: PAT甲级1137 Final Grading:[C++题解]结构体.排序.哈希表.结构体构造函数.结构体内写函 ...
- redis 用scan 代替keys 解决百万数据模糊查询超时问题
redis 用scan 代替keys 解决百万数据模糊查询超时问题 参考文章: (1)redis 用scan 代替keys 解决百万数据模糊查询超时问题 (2)https://www.cnblogs. ...
- c语言结构体数组存入文件_关于从文件中读取数据并写入结构体数组
已结贴√ 问题点数:25 回复次数:10 关于从文件中读取数据并写入结构体数组 各位大大好,本人新手一枚,最近写简单的通讯录的c程序,其他功能完好,最后一个将txt文件中的数据写入结构体数组的函数无法 ...
- 数据库系统原理与应用教程(024)—— MySQL 修改数据表的结构
数据库系统原理与应用教程(024)-- MySQL 修改数据表的结构 目录 数据库系统原理与应用教程(024)-- MySQL 修改数据表的结构 一.修改表名 二.更改数据表所使用的存储引擎 1.查看 ...
- mysql数据表查询
关于ubuntu终端mysql数据表的查询命令 打开ubuntu终端,输入mysql -u(用户名)-p(密码) 密码确认之后会显示如下界面,接着就可在光标处输入命令. –查看所有的数据库,datab ...
- oracle 构造体数据修改,Rust结构体更新语法
使用Struct更新语法从其他实例创建新实例. 当新实例使用旧实例的大部分值时,可以使用struct update语法.考虑两名员工employee1和employee2. 首先,创建Employee ...
- ABAP中不修改内表参照的结构,给内表/结构体增加字段
参照的结构体中字段数不够,除了se11修改结构之外,还可以在声明时用INCLUDE,如果不修改结构,在SE37运行测试是看不到这个字段的. Definition TYPES|DATA:BEGIN OF ...
最新文章
- ASP.NET MVC 中将FormCollection与实体间转换方法
- 编码互换变量c语言,【剑仙教程】TC。字符 和字符编码 互换。
- 前端进阶-Event
- spring security源码分析之web包分析
- 搭建XSS (跨网站指令码) 测试平台
- oracle扩容日志文件,ORACLE 加大日志文件
- switch off c语言,逆向工程 | C 语言之 switch-case 分支
- 最优化读书笔记R(一)
- html的动画效果实现无限轮播,利用 CSS3 实现的无缝轮播功能代码
- [Twisted] Protocols协议和Protocol Factories 协议工厂
- Linux高性能server规划——多线程编程(在)
- 软件测试工程师,需要达到什么水平才能顺利拿到 20k+ 无压力?
- centos上自动执行脚本执行php文件
- Linux C聊天室的实现
- Navicat 添加唯一索引
- 高德经纬度、百度经纬度、标准经纬度相互转换(VB.NET)
- android usb 键盘,android4.4 修改USB外接法语键盘
- 微信小程序:页面路由
- 一文搞懂TCP/IP,入门计算机网络必看!
- 通达oa与php环境冲突,迁移通达OA过程中所遇到的数据库问题
热门文章
- PBS环境------qsub, qstat, qdel
- Macbook Air安装Win7与苹果双系统实操
- 支持DoH的DNS服务器,谷歌公共 DNS 服务器正式支持 DoH 加密
- [答疑]类图:支付手段和优惠券、金额、积分有关
- php 连接数据库有很多notice,PHP Notice: undefined index 完美解决方法
- CSDN博客中Markdown代码转为pdf
- 校园人脸识别系统开发需求有哪些
- 在当前项目组中引入敏捷开发思想
- Qt编写安防视频监控系统56-数据库分页
- 房间类游戏后台框架(四)—游戏服务器