go对象的创建和使用 orm map对象和List 时间 json get/post请求

1.对象的创建和使用

type Role struct {Id       string `json:"Id"`RoleName string `json:"RoleName"`State    uint   `json:"State"`
}
var u = new(Role)
var role Role
var data []Role
structObj := Role{}

2.对象和orm的使用

func TestSelectOne(t *testing.T) {//query := "sn" + " = ?"var u = new(Role)Gormdb.Table("role").Where("role_id", int64(1)).Find(&u)b, err := jsoniter.Marshal(u)datajsonx, err := json.Marshal(u)if err != nil {fmt.Println("json marshal failed")return}fmt.Println("===", string(datajsonx), "==", string(b))fmt.Printf("%#v\n", u)var result = new(Role)Gormdb.Raw("SELECT role_id as Id, role_name as RoleName FROM role WHERE role_id = ?", int64(1)).Scan(&result)bx, _ := jsoniter.Marshal(result)fmt.Printf(string(bx))
}

2.集合的查询

GORM 指南 | 入门指南 |《GORM 中文文档 v2》| Go 技术论坛

func TestSelelctList(t *testing.T) {//创建一个对象//var role Role//Gormdb.AutoMigrate(&Role{})//var roleId rolePermissionvar data []RoleGormdb.Table("role").Select("role_name").Where("role_id", int64(1)).Find(&data) //.Scan(&roleId)b, _ := jsoniter.Marshal(data)fmt.Println(data, "==", string(b))Gormdb.Exec("update role set `state`=0 where role_id=1")Gormdb.Exec("update role set `state`=1 where role_id=1")//Gormdb.Table("role").Update("state", 0).Where("role_id", int64(1))/*Gormdb.First(&role, 1) // 根据整型主键查找//创建一个对象structObj := Role{}strKeys, err := utilsJson.Struct2KeysStr(structObj)if err != nil {fmt.Println("Error")}query := "id = ?"find := Gormdb.Select(strKeys).Where(query, "超级管理员").Find(&structObj)fmt.Println(find)fmt.Println("=========")*/}

3.对象的创建

GoFrame gmap遍历hashmap listmap treemap使用技巧_Golang_脚本之家

m := gmap.New()
// 创建并发安全的int类型数组
a := garray.NewIntArray(true)

4.时间的工具类

HTTPClient-基本使用 - GoFrame (ZH)-Latest - GoFrame官网 - 类似PHP-Laravel, Java-SpringBoot的Go企业级开发框架

t := gtime.Now()
// 通过时间字符串创建
gtime.New("2020-10-24 12:00:00")
// 通过time.Time对象创建
gtime.New(time.Now())
// 去年今日,系统时间fmt.Println(gtime.Now().AddDate(-1, 0, 0).Format("Y-m-d"))// 去年今日,UTC时间fmt.Println(gtime.Now().AddDate(-1, 0, 0).Format("Y-m-d H:i:s T"))fmt.Println(gtime.Now().AddDate(-1, 0, 0).UTC().Format("Y-m-d H:i:s T"))// 下个月1号凌晨0点整fmt.Println(gtime.Now().AddDate(0, 1, 0).Format("Y-m-01 00:00:00"))// 1个小时前fmt.Println(gtime.Now().Add(-time.Hour).Format("Y-m-d H:i:s"))gt1 := gtime.New("2018-08-08 08:08:08")fmt.Println(gt1.Format("Y-m-d"))fmt.Println(gt1.Format("l"))fmt.Println(gt1.Format("F j, Y, g:i a"))fmt.Println(gt1.Format("j, n, Y"))fmt.Println(gt1.Format("h-i-s, j-m-y, it is w Day z"))fmt.Println(gt1.Format("D M j G:i:s T Y"))

5.json转换

package utils//https://www.jianshu.com/p/f797343eb04fimport ("fmt""os""strings""github.com/json-iterator/go" // 引入
)type ColorGroup struct {ID     intName   stringColors []string
}type Animal struct {Name  stringOrder string
}func test01() {// ================= 序列化 =====================group := ColorGroup{ID:     1,Name:   "Reds",Colors: []string{"Crimson", "Red", "Ruby", "Maroon"},}b, err := jsoniter.Marshal(group)bb, err := jsoniter.MarshalIndent(group, "", " ")if err != nil {fmt.Println("error: ", err)}os.Stdout.Write(b)fmt.Println()os.Stdout.Write(bb)fmt.Println()// ===================  Deconde 解码 =================jsoniter.NewDecoder(os.Stdin).Decode(&group)fmt.Println(group)//encoder := jsoniter.NewEncoder(os.Stdout)//encoder.SetEscapeHTML(true)//encoder.Encode(bb)//fmt.Println(string(bb))// =================== 反序列化 =======================var jsonBlob = []byte(`[{"Name": "Platypus", "Order": "Monotremata"},{"Name": "Quoll",    "Order": "Dasyuromorphia"}]`)var animals []Animalif err := jsoniter.Unmarshal(jsonBlob, &animals); err != nil {fmt.Println("error: ", err)}fmt.Printf("the unmarshal is  %+v", animals)// ======================= 流式 ========================fmt.Println()// 序列化stream := jsoniter.ConfigFastest.BorrowStream(nil)defer jsoniter.ConfigFastest.ReturnStream(stream)stream.WriteVal(group)if stream.Error != nil {fmt.Println("error: ", stream.Error)}os.Stdout.Write(stream.Buffer())fmt.Println()// 反序列化iter := jsoniter.ConfigFastest.BorrowIterator(jsonBlob)defer jsoniter.ConfigFastest.ReturnIterator(iter)iter.ReadVal(&animals)if iter.Error != nil {fmt.Println("error: ", iter.Error)}fmt.Printf("%+v", animals)fmt.Println()// ====================其他操作===================// getval := []byte(`{"ID":1,"Name":"Reds","Colors":
{"c":"Crimson","r":"Red","rb":"Ruby","m":"Maroon","tests":["tests_1","tests_2","tests_3","tests_4"]}}`)fmt.Println(jsoniter.Get(val, "Colors").ToString())fmt.Println("the result is ", jsoniter.Get(val, "Colors", "tests", 0).ToString())// fmt.Println(jsoniter.Get(val, "colors", 0).ToString())fmt.Println()hello := MyKey("hello")output, _ := jsoniter.Marshal(map[*MyKey]string{&hello: "world"})fmt.Println(string(output))obj := map[*MyKey]string{}jsoniter.Unmarshal(output, &obj)for k, v := range obj {fmt.Println(*k, " = ", v)}}// 自定义类型
// 序列化: 需要实现MarshellText
type MyKey stringfunc (m *MyKey) MarshalText() ([]byte, error) {// return []byte(string(*m)) , nil  // 针对序列化的内容不做任何调整return []byte(strings.Replace(string(*m), "h", "H", -1)), nil
}func (m *MyKey) UnmarshalText(text []byte) error {*m = MyKey(text[:]) // 针对text不做处理return nil
}

6.get、post

go语言http请求(一)_go http import-CSDN博客

GO 发起HTTP请求调用接口_go-http-client/1.1-CSDN博客

HTTPClient-基本使用 - GoFrame (ZH)-Latest - GoFrame官网 - 类似PHP-Laravel, Java-SpringBoot的Go企业级开发框架

import ("fmt""net/http""io/ioutil"
)func main(){response,err := http.Get("http://www.baidu.com")if(err!=nil){fmt.Println(err)}defer response.Body.Close()body,err := ioutil.ReadAll(response.Body)fmt.Println(string(body))
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/799065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis 知识储备】冷热分离架构 -- 分布系统的演进(5)

冷热分离架构 简介出现原因架构工作原理技术案例架构优缺点 简介 引入缓存, 实行冷热分离, 将热点数据放到缓存中快速响应 (如存储到 Redis中) 出现原因 海量的请求导致数据库负载过高, 站点响应再读变慢 架构工作原理 多了缓存服务器, 对于热点数据全部到缓存中, 不常用数…

【Redis 知识储备】垂直分库架构 -- 分布系统的演进(6)

垂直分库架构 简介出现原因架构工作原理技术案例架构优缺点 简介 数据库的数据被拆分, 数据库分布式存储, 分布式处理, 分布式查询, 也可以理解为分布式数据库框架 出现原因 单机的写库会逐渐会达到性能瓶颈, 需要拆分数据库, 数据表的数据量太大, 处理压力太大, 需要进行分…

阿里云服务器可以干什么?阿里云服务器主要用途是干嘛的?

阿里云服务器可以干嘛?能干啥你还不知道么!简单来讲可用来搭建网站、个人博客、企业官网、论坛、电子商务、AI、LLM大语言模型、测试环境等,阿里云百科aliyunbaike.com整理阿里云服务器的用途: 阿里云服务器活动 aliyunbaike.com…

armlinux裸机-uart

uart是一对一的串行异步全双工通信通信协议,串行速度较慢(usart支持同步通信) 传输原理 多个参数可以设置 为满足使用需求,我们一般都用带fifo缓冲中断。 我们使用S3C2440芯片,具体寄存器操作可以查看用户手册

ES入门十四:分词器

我们存储到ES中数据大致分为以下两种: 全文本,例如文章内容、通知内容精确值,如实体Id 在对这两类值进行查询的时候,精确值类型会比较它们的二进制,其结果只有相等或者不想等。而对全文本类型进行等值比较是不太实现…

【深度学习】StableDiffusion的组件解析,运行一些基础组件效果

文章目录 前言vaeclipUNetunet训练帮助、问询 前言 看了篇文: https://zhuanlan.zhihu.com/p/617134893 运行一些组件试试效果。 vae 代码: import torch from diffusers import AutoencoderKL import numpy as np from PIL import Image# 加载模型…

Redis分布式锁误删情况说明

4.4 Redis分布式锁误删情况说明 逻辑说明: 持有锁的线程在锁的内部出现了阻塞,导致他的锁自动释放,这时其他线程,线程2来尝试获得锁,就拿到了这把锁,然后线程2在持有锁执行过程中,线程1反应过…

Linux 命令完全手册(1),受益匪浅

第一列返回的是行数,第二列是字数,第三列则是比特数。 我们可以让它只计算行数: wc -l test.txt 或者只计算字数: wc -w test.txt 或者只计算比特数: wc -c test.txt 在 ASCII 字符集中,比特数等于字…

LeetCode-153. 寻找旋转排序数组中的最小值【数组 二分查找】

LeetCode-153. 寻找旋转排序数组中的最小值【数组 二分查找】 题目描述:解题思路一:二分查找,注意在闭区间[0, n-2]解题思路二:0解题思路三:0 题目描述: 已知一个长度为 n 的数组,预先按照升序…

FPGA与数字图像处理专栏分类与索引

基础视频协议 VGA协议 视频流环境搭建以及杂项 1.图像验证算法平台搭建   2.VDMA视频流显示通路搭建   4.PS配置VDMA改PL配置VDMA   7.3*3卷积核生成   12.自定义的多帧缓存架构 色域转换 6.RGB转YCbcr 图像降噪 8.均值滤波   9.图像中值腐蚀膨胀滤波的实现   1…

python爬虫学习第十六天--------URLError和HTTPError、cookie登录、Handler处理器

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

多轴机械臂/正逆解/轨迹规划/机器人运动学/Matlab/DH法 学习记录01——数学基础

系列文章目录 本科毕设正在做多轴机械臂相关的内容,这里是一个学习机械臂运动学课程的相关记录。 如有任何问题,可发邮件至layraliufoxmail.com问询。 1. 数学基础 文章目录 系列文章目录一、空间位置、姿态描述二、旋转矩阵(Rotation matri…

线程池的方式爬虫

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.2</version> </dependency><!-- 爬虫需…

mysql修改密码提示: Your password does not satisfy the current policy requirements

1、问题概述&#xff1f; 环境说明&#xff1a; Red Hat Enterprise Linux7mysql5.7.10 执行如下语句报错&#xff1a; set password for rootlocalhost password(123456); ERROR 1819 (HY000): Your password does not satisfy the current policy requirements意思就是&a…

摄影杂记二

一、相机操作指南 ⑴按键说明&#xff1a; 除了常规的几个模式&#xff0c;里面就特殊场景可以看一下&#xff0c;有全景&#xff0c;支持摇摄。 lock&#xff1a;多功能锁。可以锁定控制按钮和控制环。在设置中找到多功能锁&#xff0c;可以设置锁定什么。 m-fn&#xff1a;多…

Go数据结构的底层原理(图文详解)

空结构体的底层原理 基本类型的字节数 fmt.Println(unsafe.Sizeof(0)) // 8 fmt.Println(unsafe.Sizeof(uint(0))) // 8 a : 0 b : &a fmt.Println(unsafe.Sizeof(b)) // 8int大小跟随系统字长指针的大小也是系统字长 空结构体 a : struct { }{} b : struct {…

国内ChatGPT大数据模型

在中国&#xff0c;随着人工智能技术的迅猛发展&#xff0c;多个科技公司和研究机构已经开发出了与OpenAI的ChatGPT类似的大型语言模型。这些模型通常基于深度学习技术&#xff0c;尤其是Transformer架构&#xff0c;它们在大量的文本数据上进行训练&#xff0c;以理解和生成自…

每天五分钟掌握深度学习框架pytorch:本专栏说明

专栏大纲 专栏计划更新章节在100章左右&#xff0c;之后还会不断更新&#xff0c;都会配备代码实现。以下是专栏大纲 部分代码实现 代码获取 为了方便用户浏览代码&#xff0c;本专栏将代码同步更新到github中&#xff0c;所有用户可以读完专栏内容和代码解析之后&#xff0c…

golang特性2

golang特性 interface 应用场景 面向接口编程 抽象类型的实现&#xff1a;接口提供了一种抽象的方式来定义类型的行为。通过接口&#xff0c;可以定义一组方法的集合&#xff0c;然后任何类型只要实现了这组方法&#xff0c;就可以被视为是这个接口的实现类型。这样就可以针…

Struts2:Action类的写法,推荐使用继承ActionSupport类的方法

文章目录 方法一&#xff1a;Action类是一个POJO类&#xff08;简单的Java类&#xff09;ActionDemo2.javastruts_demo2.xmlstruts.xml运行结果其他strutsz_demo1.xml 方法二&#xff1a;实现一个Action的接口ActionDemo2_2.javastruts_demo2.xml运行结果 推荐&#xff01;&…