golang gorm增删改查db.Model db.Where db.Table_gorm db.model-程序员宅基地

技术标签: golang  orm  后端  sql  

1. 创建

创建记录:

user := User{
   
    Name: "Jinzhu", Age: 18, Birthday: time.Now()}

db.NewRecord(user) // => 主键为空返回`true`

db.Create(&user)

db.NewRecord(user) // => 创建`user`后返回`false`

设置默认值:
可以在gorm tag中定义默认值,然后插入SQL将忽略具有默认值的这些字段,并且其值为空,并且在将记录插入数据库后,gorm将从数据库加载这些字段的值。

type Animal struct {
   
    
    ID   int64
    Name string `gorm:"default:'galeone'"`
    Age  int64
}

var animal = Animal{
   
    Age: 99, Name: ""}
db.Create(&animal)
INSERT INTO animals("age") values('99');
SELECT name from animals WHERE ID=111; // 返回主键为 111
animal.Name => 'galeone'

2. 查询

获取:第一条记录/ 最后一条记录/ 所有记录

// 获取第一条记录,按主键排序
db.First(&user)
 SELECT * FROM users ORDER BY id LIMIT 1;

// 获取最后一条记录,按主键排序
db.Last(&user)
 SELECT * FROM users ORDER BY id DESC LIMIT 1;

// 获取所有记录
db.Find(&users)
 SELECT * FROM users;

// 使用主键获取记录
db.First(&user, 10)
 SELECT * FROM users WHERE id = 10;

Where查询条件

// 获取第一个匹配记录
db.Where("name = ?", "jinzhu").First(&user)
 SELECT * FROM users WHERE name = 'jinzhu' limit 1;

// 获取所有匹配记录
db.Where("name = ?", "jinzhu").Find(&users)
 SELECT * FROM users WHERE name = 'jinzhu';
// IN
db.Where("name in (?)", []string{
   
    "jinzhu", "jinzhu 2"}).Find(&users)

// LIKE
db.Where("name LIKE ?", "%jin%").Find(&users)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45604257/article/details/105139862

智能推荐

解决SpringCloud客户端启动报错:“Field XXX required a bean of type XXX that could not be found”_升级springcloud required a bean of type interface th-程序员宅基地

文章浏览阅读920次。消费方调用提供方的方法@EnableFeignClients //添加fegin注解,调用其他服务方法_升级springcloud required a bean of type interface that could not be found.

JAVA-数组例题(随机排名)_某公司开发部5名开发人员,要进行项目进展汇报演讲,现在采取随机排名后进行汇报。-程序员宅基地

文章浏览阅读997次,点赞4次,收藏5次。题目:猜数字游戏要求:(1)游戏后台随机生成1-20之间的5个数(无所谓是否重复),然后让大家来猜数字, 为猜中_某公司开发部5名开发人员,要进行项目进展汇报演讲,现在采取随机排名后进行汇报。

博科300 java配置,Brocade_300光纤交换机配置重点详解.ppt-程序员宅基地

文章浏览阅读450次。Brocade SAN·Ed Pro SilkWorm Product Training 第一章 共42页 * 为何要为存储提供专用网络哪? 答: 好的局域网并不意味着好的存储区域网 LAN使用不同的协议不同的工具 LAN在客户端缺少安全性, 而服务器端则潜伏着易收攻击的缺点 LAN很少能够为存储网络化提供相应的冗余数据传..._博科300 jre

物理单位与格子单位转换_格子boltzmann单位换算-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏25次。在使用格子-玻尔兹曼方法模拟时,使用的是格子单位,而非实际的物理单位。物理单位与各自单位的转换非常重要!非常重要!非常重要!一方面,在转换过程中容易出错;另一方面,不选择合适的参数,容易导致不稳定(发散)。在这里主要介绍一下几个简单的单位之间的转换。转换原则:主要依据就是量纲关系以及各物理量之间的关系。其中最重要的是:特征数保持不变!以雷诺数为例,理论上,在使得物理雷诺数与格子雷诺数相等的情况下,格子速度、格子运动粘度、格子数量(这里的格子数量是看你取的什么雷诺数,如果是颗粒雷诺数,那就是格_格子boltzmann单位换算

linux 字符串非空,linux shell 中判断字符串为空的正确方法-程序员宅基地

文章浏览阅读261次。转自:http://www.cnblogs.com/cute/archive/2011/08/26/2154137.htmlhelp命令可以查看帮助help test正确做法:#!/bin/shSTRING=if [ -z "$STRING" ]; thenecho "STRING is empty"fiif [ -n "$STRING" ]; thenecho "STRING is not em..._linux判断非空

ArcGIS提取面状道路中心线_arcgis提取中心线最大宽度-程序员宅基地

文章浏览阅读5.1w次,点赞17次,收藏75次。老生常谈的问题,其实在BBS里已经讨论过好多次了,在这里再整理一次分享给大家在数据有备份的情况:1.首先把所有的面要素merge成一个要素 2.把merge后的数据转成线数据 3.此时转换后的线数据一定是闭合的,为了防止提取中心线失败(只提取出外围轮廓)我们在随意一个道路末端使用打断工具打一个开口(感谢来生缘版主的“独门秘籍”)。 4.使用ArcG_arcgis提取中心线最大宽度

随便推点

[C#] 我的log4net使用手册(完善中)_c#中ilog类的说明-程序员宅基地

文章浏览阅读2w次。1. log4net简介log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。Java平台下,它还有一个姐妹组件——log4j。log4net的下载地址:http://logging.apache.org/log4net/download.html 2. log4net的组成lo_c#中ilog类的说明

毕设项目分享 单片机贪吃蛇游戏(AT89C51)-程序员宅基地

文章浏览阅读287次,点赞4次,收藏4次。此电路由AT89C51最小系统、74HC595位移缓存器、8*8点阵LED屏和按键组成。74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK的上升沿,串行数据由SDL输入到内部的8位位移缓存器,并由Q7’输出,而并行输出则是在LCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器。当串行数据输入端OE的控制信号为低使能时,并行输出端的输出值等于并行输出缓存器所存储的值。

onnxruntime推理YOLOv5-程序员宅基地

文章浏览阅读223次。YOLOv5的onnxruntime推理_onnxruntime推理yolov5

Linux主机通过虚机中的EasyConnect连接内网_easyconnect 虚拟机-程序员宅基地

文章浏览阅读3.5k次。根据 https://smartkeyerror.com/Linux-Use-EasyConnect 文章所述,尝试安装了一下,确实可行。虽然每次使用有点麻烦,但依然是一个选项:虚机启动后必须登录 EasyConnect,这客户端登录时还有个验证图片,也没个证书,所以没有测试自动登录。不过第二条就已经打消了自动建立连接的想法了。被共享的连接必须重建,否则192.168.137.1网卡无法转发数据包。我猜使用管理员控制台用命令可以解决,有空再折腾吧。Linux主机使用了 remmina,没找到哪里可_easyconnect 虚拟机

sqlmap用法大全-程序员宅基地

文章浏览阅读512次。sqlmap参数详解:Usage: python sqlmap.py [options] Options(选项): -h, --help Show basic help message and exit 展示帮助文档 参数-hh Show advanced help message..._sqlmap详细大全

Kafka-flinkSQL-hudi测试案例:_kafka connect.s3.kcq-程序员宅基地

文章浏览阅读615次,点赞2次,收藏2次。Kafka-flinkSQL-hudi测试案例:采用flink-generateConnector模拟生成流式数据到kafka中,然后通过flink-kafka-connect实时读取kafka中数据进行处理,实时将数据存入hudi中,最后又通过flink读取hudi的数据进行统计_kafka connect.s3.kcq

推荐文章

热门文章

相关标签