当前位置: 首页 > news >正文

中山建网站报价制作网站的顺序

中山建网站报价,制作网站的顺序,厦门网络推广专员,网络商城推广营销代码获取 本篇文章的代码放在了Github上,可以免费获取。 https://github.com/zhangdapeng520/zdpgo_gin_examples 概述 在查询用户信息的时候,由于密码这个字段比较敏感,需要进行处理,不要返回给前端。 我一开始的解决方案是直…

代码获取

本篇文章的代码放在了Github上,可以免费获取。
https://github.com/zhangdapeng520/zdpgo_gin_examples

概述

在查询用户信息的时候,由于密码这个字段比较敏感,需要进行处理,不要返回给前端。

我一开始的解决方案是直接查询数据以后做一次转换,但是这种方案效率比较低,所以我就在思考有没有更快的方案?

比如说,能不能直接选择特定字段进行查询。

结果是令人满意的,gorm提供了Select这个方法,可以让我们选择特点的字段。

官方文档

https://gorm.io/zh_CN/docs/query.html

Select allows you to specify the fields that you want to retrieve from database. Otherwise, GORM will select all fields by default.

db.Select("name", "age").Find(&users)
// SELECT name, age FROM users;db.Select([]string{"name", "age"}).Find(&users)
// SELECT name, age FROM users;db.Table("users").Select("COALESCE(age,?)", 42).Rows()
// SELECT COALESCE(age,'42') FROM users;

Also check out Smart Select Fields

刚开始的解决方案

func userGetAll(c *gin.Context) {var users []model.Userg.GDB.Find(&users)// 转换var data []userResponsefor _, user := range users {data = append(data, userResponse{Id:       user.Id,Username: user.Username,Money:    user.Money,})}c.JSON(200, data)
}

通过postman进行测试。
在这里插入图片描述

经过实测,这种方案确实是能够查询到想要的东西的。

然后我检查了日志:
在这里插入图片描述

消耗的时间是1.0227ms。

该方案缺点

1、代码量比较多,需要定义额外的结构体,需要编写解析的代码。
2、时间复杂多明显增加,因为遍历操作是O(n),所以时间复杂度会增加O(n)

后来的解决方案

func userGetAll(c *gin.Context) {var users []model.Userg.GDB.Select([]string{"id", "username", "money"}).Find(&users)c.JSON(200, &users)
}

通过postman进行测试。
在这里插入图片描述

经过实测,也是能够出来的。

然后我观察了一下控制台的日志。
在这里插入图片描述

消耗的时间是,518.8us,之前的方案是 1.0227ms。

1ms = 1000us,所以通过Python可以计算。

在这里插入图片描述

新方案的时间是之前方案的1.97倍,也就是将近2倍的时间。

这个是在数据量只有1条的情况下,如果数据量变得非常多,新方案的收益是非常可观。

新方案的缺点

主要是在回显给前端的时候,有password的这个字段,虽然这个字段是空的。

解决方案

给结构体的json解析tag增加标签,增加omitempty这个标识符。表示如果该字段是空值,就不要解析了。

type User struct {Id       int     `json:"id"`Username string  `json:"username"`Password string  `json:"password,omitempty"`Money    float64 `json:"money"`
}

经过 postman 实测,效果达到了。
在这里插入图片描述

经过多次请求的测试,发现接口性能有一定的提升。
在这里插入图片描述

总结

本篇文章主要讲解了gorm如果实现指定字段查询,然后还提供了go语言json解析时如果字段是空值如何不让其回显给前端的方案。

人生苦短,我用pygo,我是您身边的Python私教。

如果你想学编程,做项目,或者提升自己的技术,都欢迎您联系我。

http://www.yayakq.cn/news/970580/

相关文章:

  • 学校网站页面设计龙岩百度推广
  • 淘客网站怎么备案金环建设集团网站
  • 湖南网站建设mxtiawordpress内置播放器
  • 网站开发一般多少钱建筑模板厂投资多少钱
  • 广告推广平台网站百度推广入口页面
  • 静态网站可以申请域名吗网站备案要花钱吗
  • 建网站公司的资质需要哪些天津哪里有做网站的公司
  • 电子商务网站建设心得体会韩国做游戏的电影 迅雷下载网站
  • 怎样用h5做网站永久免费国外vps无需信用卡
  • 怎么建设个网站企业网站备案 网站服务内容
  • 网站建设合同服务事项做seo网站公司哪家好
  • 网站内容页相关性怎么做怎么做不花钱的网站
  • 交通局网站模板网站怎么做图片链接
  • 网站如何做导航静态网站建设的PPT
  • 网站建设案例完整代码合肥做网站 卫来网络
  • html5 wap 网站模板巴青网站制作
  • 济南建设项目竣工验收公示网站阳江市房产网
  • wordpress 文章id 链接天津关键词优化网排名
  • 模拟建设官方网站wordpress完整备份
  • 北京微信网站搭建多少钱本地网站asp iis
  • 百度推广400电话西宁软件优化网站建设
  • 歪咪小麻花官方网站怎么做零售个人简历表免费下载 模板
  • 什么网站做谷歌联盟好长沙网站 建设推广世云网络
  • 合肥简川科技网站建设公司 概况镇江网站建设包括哪些
  • 机械网站建设中心台州网站seo外包
  • 企业网站系统功能分析与设计wordpress页面怎么跳转
  • 岳阳品牌网站定制开发wordpress seo 优化
  • 关于网站建设报告视频怎么转wordpress
  • 吕邵苍设计公司网站燕郊个人做网站
  • 做网站的一般尺寸丰台网站建设报价