资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

如何使用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语句
文章源于:http://cdkjz.cn/article/jhspge.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220