GoFrame ORM原生方法 开箱体验 (上)

简介: gf是支持ORM原生操作的,在ORM链式操作执行不了太过于复杂的SQL操作时,可以交给方法操作来处理。这篇文章整理原生操作的常用方法,下篇文章根据整理的原生方法整理对应的开箱体验。

常用方法


SQL操作方法,返回原生的标准库sql对象


  1. Query是原始的数据查询方法,返回的是原生的标准库的结果集对象,需要自行解析。
  2. Exec方法用于写入/更新的SQL的操作。


Query(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
Exec(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
Prepare(ctx context.Context, query string) (*sql.Stmt, error)


数据表记录查询:


  1. 查询单条记录、查询多条记录、获取记录对象、查询单个字段值(链式操作同理)
  2. 在执行数据查询时推荐使用Get*系列查询方法。


GetAll(ctx context.Context, sql string, args ...interface{}) (Result, error)
GetOne(ctx context.Context, sql string, args ...interface{}) (Record, error)
GetValue(ctx context.Context, sql string, args ...interface{}) (Value, error)
GetArray(ctx context.Context, sql string, args ...interface{}) ([]Value, error)
GetCount(ctx context.Context, sql string, args ...interface{}) (int, error)
GetScan(ctx context.Context, objPointer interface{}, sql string, args ...interface{}) error


数据单条操作


  1. Insert/Replace/Save方法中的data参数支持的数据类型为:string/map/slice/struct/*struct,当传递为slice类型时,自动识别为批量操作,此时batch参数有效。


Insert(ctx context.Context, table string, data interface{}, batch...int) (sql.Result, error)
Replace(ctx context.Context, table string, data interface{}, batch...int) (sql.Result, error)
Save(ctx context.Context, table string, data interface{}, batch...int) (sql.Result, error)


在这里由衷的感叹一句:gf确实非常方便。至今记得自己用gorm1.1版本时,困顿于批量插入无法自拔:# Go GORM是时候升级新版本了 2.0新特性介绍


数据修改/删除


Update(ctx context.Context, table string, data interface{}, condition interface{}, args ...interface{}) (sql.Result, error)
Delete(ctx context.Context, table string, condition interface{}, args ...interface{}) (sql.Result, error)


总结


虽然GoFrame的ORM链式操作非常简单且强大,但是业务中总还是有一些逻辑需要使用原生方法实现,化繁为简。

相关文章
|
XML JSON 前端开发
官方Lottie库能力增强实现
背景Lottie提供了播放复杂、酷炫动能力画,在移动端被广泛利用。在我们的应用中也被频繁、大量使用。它使用简单,仅需几行代码就能播放设计师设计的动画,帮助开发节省了时间成本。也正因为使用频繁,在使用过程中我们遇到了一些相关的问题。使用Lottie支持加载本地文件播放,也支持远程下载zip,json文件进行播放。这俩者在我们平时开发中都有使用到。本地播放本地播放比较简单。可以直接在xml实现,也可以
985 0
官方Lottie库能力增强实现
|
1月前
|
人工智能 供应链 监控
推荐一款TinyEngine低代码引擎!支持自定义DSL 生成定制的源码、跨技术栈!
推荐一款TinyEngine低代码引擎!支持自定义DSL 生成定制的源码、跨技术栈!
|
2月前
|
存储 JSON JavaScript
60+开箱即用的工具函数库xijs更新指南(v1.2.5)
60+开箱即用的工具函数库xijs更新指南(v1.2.5)
27 1
|
3月前
|
移动开发 前端开发 JavaScript
原生求生记:揭秘UniApp的原生能力限制
原生求生记:揭秘UniApp的原生能力限制
|
3月前
|
JavaScript 前端开发 Java
深入探索Spring Boot的核心功能:快速构建原生程序响应式处理数据(文末送书)
深入探索Spring Boot的核心功能:快速构建原生程序响应式处理数据(文末送书)
29 0
|
7月前
|
移动开发 小程序 开发工具
Donut 多端框架是支持使用小程序原生语法开发移动应用的框架
Donut 多端框架是支持使用小程序原生语法开发移动应用的框架,开发者可以一次编码,分别编译为小程序和 Android 以及 iOS 应用,实现多端开发
302 0
Donut 多端框架是支持使用小程序原生语法开发移动应用的框架
|
数据管理 测试技术 C#
一个近乎完美的Unity全平台原生c#热更方案
HybridCLR是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案。
515 0
一个近乎完美的Unity全平台原生c#热更方案
|
SQL 数据库连接 数据库
GoFrame ORM原生方法 开箱体验 (下)
gf是支持ORM原生操作的,在ORM链式操作执行不了太过于复杂的SQL操作时,可以交给方法操作来处理。 上一篇文章 整理了ORM的原生方法,这篇文章根据整理的原生方法整理对应的开箱体验。
108 0
|
SQL 安全 Go
GoFrame ORM 使用实践分享
今天这篇把我使用GoFrame ORM的过程中认为有价值、可能踩坑、比较好的实践等相关的知识点分享出来。
283 0
|
Web App开发 移动开发 前端开发
零基础简单易用的EmberJS框架
ember.js是一个JavaScript框架,它大大减少了构建任何web应用程序所需的时间、精力和资源。它专注于让你,开发人员,通过做所有常见的,重复的,但重要的,涉及大多数web开发项目的任务,尽可能地提高生产力。
722 0
零基础简单易用的EmberJS框架