ORM框架Gorm-查询记录

查询官方文档

只写了简单的查询,可以去官方看看负责的查询.

导入的包

import (
	"fmt"
	"log"
	"time"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

用户结构体

type User struct {
	gorm.Model
	Name     string
	Age      int
	Birthday time.Time
}

初始化连接数据库

var db *gorm.DB

func init() {
	dsn := "root:root@tcp(127.0.0.1:3306)/go_orm?charset=utf8mb4&parseTime=True&loc=Local"
	d, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		log.Fatal(err)
	}
	db = d
}

获取第一条记录(主键升序)

func select1() {
	var user User
	// 获取第一条记录(主键升序)
	db.First(&user)
	fmt.Printf("user: %v\n", user)
	fmt.Printf("user.ID: %v\n", user.ID)
}

获取一条记录,没有指定排序字段

func select2() {
	var user User
	// 获取一条记录,没有指定排序字段
	db.Take(&user)
	fmt.Printf("user: %v\n", user)
	fmt.Printf("user.ID: %v\n", user.ID)
}

获取最后一条记录(主键降序)

func select3() {
	var user User
	// 获取最后一条记录(主键降序)
	db.Last(&user)
	fmt.Printf("user: %v\n", user)
	fmt.Printf("user.ID: %v\n", user.ID)
}

用主键检索

func select4() {
	var user User
	// SELECT * FROM users WHERE id = 5;
	db.First(&user, 5)
	fmt.Printf("user: %v\n", user)
	fmt.Printf("user.ID: %v\n", user.ID)
}

func select5() {
	var user User
	// SELECT * FROM users WHERE id = 5;
	db.First(&user, "5")
	fmt.Printf("user: %v\n", user)
	fmt.Printf("user.ID: %v\n", user.ID)
}

func select6() {
	var users []User
	// SELECT * FROM users WHERE id IN (1,2,3);
	db.Find(&users, []int{1, 2, 3})
	for _, user := range users {
		fmt.Printf("user.ID: %v\n", user.ID)
	}
}

检索全部对象

func select7() {
	var users []User
	result := db.Find(&users)
	fmt.Printf("result.RowsAffected: %v\n", result.RowsAffected)
}

数据库信息

在这里插入图片描述

运行结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sqltoy-orm是比hibernate+myBatis更加贴合项目的orm框架,具有hibernate增删改的便捷性同时也具有比myBatis更加灵活优雅的自定义sql查询功能。 sqltoy-orm支持以下数据库: oracle 从oracle11g到19c db2 9.5+,建议从10.5 开始 mysql 支持5.6、5.7、8.0 版本 postgresql 支持9.5 以及以上版本 sqlserver 支持2008到2019版本,建议使用2012或以上版本 sqlite sybase_iq 支持15.4以上版本,建议使用16版本 elasticsearch 只支持查询,版本支持5.7+版本,建议使用7.3以上版本 clickhouse mongodb (只支持查询) sqltoy-orm特性: 1、根本上杜绝了sql注入问题,sql支持写注释、sql文件动态更新检测,开发时sql变更会自动重载。 2、最直观的sql编写模式,当查询条件稍微复杂一点的时候就会体现价值,后期变更维护的时候尤为凸显。 3、极为强大的缓存翻译查询:巧妙的结合缓存减少查询语句表关联,极大简化sql和提升性能。 4、最强大的分页查询:很多人第一次了解到何为快速分页、分页优化这种极为巧妙的处理,还有在count语句上的极度优化。 5、跨数据库函数方言替换,如:isnull/ifnull/nvl、substr/substring 等不同数据库。 sqltoy-orm特点: 1、最优雅直观的sql编写模式 2、天然防止sql注入,执行过程 3、最强大的分页查询 4、最巧妙的缓存应用,将多表关联查询尽量变成单表 5、跨数据库 6、提供行列转换(数据旋转),避免写复杂的sql或存储过程,用算法来化解对sql的高要求,同时实现数据库无关(不管是mysql还是sqlserver) 7、提供分组汇总求平均算法(用算法代替sql避免跨数据库语法不一致) 8、分库分表 9、五种非数据库相关主键生成策略 10、elastic原生查询支持 11、elasticsearch-sql 插件模式sql模式支持     sqltoy-orm框架系统 更新日志: v4.18.22 1、在findEntity中EntityQuery可以设置fetchSize 2、在sqltoyContext中可以全局设置fetchSize,例如 spring.sqltoy.fetchSize=200 3、convertType 支持空集合返回空集合 4、针对一些特殊原因导致表名是数据库关键词的处理支持

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值