武城网站建设价格,东莞容桂网站制作,备案网站首页地址,网站稳定性GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.
04_GORM查询操作_哔哩哔哩_bilibili
前置#xff1a;
db调用操作语句中间加debug#xff08;#xff09;可以显示对应的sql语句 1.Gorm模型定义#xff08;理解重点#xff…GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.
04_GORM查询操作_哔哩哔哩_bilibili
前置
db调用操作语句中间加debug可以显示对应的sql语句 1.Gorm模型定义理解重点
02_GORM模型定义那些事儿_哔哩哔哩_bilibili
模型定义 | GORM - The fantastic ORM library for Golang, aims to be developer friendly. 1 2结构体可以指定tag对应到数据库里的字段名称 3一些tag 4默认ID作主键也可以用tag指定 5表名默认结构体名字s可以指定
可以用func TableName返回指定表名或者Table() 6)列名 7三个时间戳标签
有model的就会自动嵌入专门记录创建修改和删除的时间戳。 软删除DeletedAt设置为当前时间表示软删除并不是真正删除数据相当于保护了数据完整性。查询来的时候会发现DeletedAt有值默认逻辑删除了 2.数据库连接
获取一个db代表这个数据库后续可以利用db进行数据库操作 3.迁移表 会自动把传入的数据类型与数据库的表格对应起来如果有结构体变化会更改表格结构。
gorm模型和表格对应关系 4.增添
Create()传入结构体和结构体指针都可以但是一般指针比较小。
NewRecord()判断主键对应的对象是否已经在数据库里存在会造成冲突 1默认值
结构体后面反引号gormdefault‘xxx’ 5.删除
1单个删除或者全删
删除该类型对应表里和主键id一样的记录
tips警告删除记录时请确保主键字段有值GORM 会通过主键去删除记录如果主键为空,GORM会删除该model的所有记录。 2)符合条件的批量删除 3软删除 4)物理删除 6.修改
1更新所有字段 2改指定字段
update和updates的区别是更新一个还是多个字段 3更新或忽略某些字段 7.查找
1一般 为什么传地址因为你要查询出结果查询结果会放在传进去的参数里而不是放返回值里。
而且这一条只限于主键id为int类型的才能获取。 这里传入的是一个slice指针获取一组数据
db.First(user, 10)
// SELECT * FROM users WHERE id 10;db.First(user, 10)
// SELECT * FROM users WHERE id 10;db.Find(users, []int{1,2,3})
// SELECT * FROM users WHERE id IN (1,2,3);// 获取第一条记录主键升序
db.First(user)
// SELECT * FROM users ORDER BY id LIMIT 1;// 获取一条记录没有指定排序字段
db.Take(user)
// SELECT * FROM users LIMIT 1;// 获取最后一条记录主键降序
db.Last(user)
// SELECT * FROM users ORDER BY id DESC LIMIT 1// Get all records
result : db.Find(users) 2where
查询 | GORM - The fantastic ORM library for Golang, aims to be developer friendly. 都是在查询前面插入一个where函数写条件
// Get first matched record
db.Where(name ?, jinzhu).First(user)
// SELECT * FROM users WHERE name jinzhu ORDER BY id LIMIT 1;// Get all matched records
db.Where(name ?, jinzhu).Find(users)
// SELECT * FROM users WHERE name jinzhu;// IN
db.Where(name IN ?, []string{jinzhu, jinzhu 2}).Find(users)
// SELECT * FROM users WHERE name IN (jinzhu,jinzhu 2);// LIKE
db.Where(name LIKE ?, %jin%).Find(users)
// SELECT * FROM users WHERE name LIKE %jin%;// AND
db.Where(name ? AND age ?, jinzhu, 22).Find(users)
// SELECT * FROM users WHERE name jinzhu AND age 22;// Time
db.Where(updated_at ?, lastWeek).Find(users)
// SELECT * FROM users WHERE updated_at 2000-01-01 00:00:00;// BETWEEN
db.Where(created_at BETWEEN ? AND ?, lastWeek, today).Find(users)
// SELECT * FROM users WHERE created_at BETWEEN 2000-01-01 00:00:00 AND 2000-01-08 00:00:00;