温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用gorm语句

发布时间:2021-10-14 10:10:46 来源:亿速云 阅读:94 作者:iii 栏目:编程语言

本篇内容介绍了“如何使用gorm语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

gorm

  • SQL 拼写

  • SQL 执行

  • prometheus 监控

1.SQL 拼写

gorm/tree/master/callbacks包实现了CURD.

  • select

  • create

  • update

  • delete

  • transaction

type Statement struct {
	Table                string
	Model                interface{}
	Selects              []string // selected columns
	Preloads             map[string][]interface{}
	Settings             sync.Map
	ConnPool             ConnPool
	Context              context.Context
	SQL                  strings.Builder
	Vars                 []interface{}
    // ....
}
  • SQL: 拼SQL的格式

  • Vars: sql格式中占位符对应的值.

select:

SELECT * FROM `sys_users` WHERE (username = ? AND password = ?) AND `sys_users`.`deleted_at` IS NULL ORDER BY `sys_users`.`id` LIMIT 1

2.SQL 执行

  • sql

  • params

  • result = cursor.execute(sql, params)

  • result 转为gorm中的Model对象.

ConnPool.ExecContext 定义返回值是sql.Rows 驱动层的数据.

import (
	"context"
	"database/sql"
)

type ConnPool interface {
	PrepareContext(ctx context.Context, query string) (*sql.Stmt, error)
	ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
	QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
	QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row
}

gorm执行sql:

result, err := db.Statement.ConnPool.ExecContext(db.Statement.Context, db.Statement.SQL.String(), db.Statement.Vars...)
// result 转为
  • err: sql执行是否出错

  • result: db server 返回的结果.

“如何使用gorm语句”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI