如何使用gorm语句

本篇内容介绍了“如何使用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语句”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!

分享题目:如何使用gorm语句
文章路径:https://www.cdcxhl.com/article14/jhspge.html

成都网站建设公司_创新互联,为您提供标签优化企业网站制作外贸建站微信公众号网站建设全网营销推广

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站建设