Gorm-原生 SQL 查询和执行(一)
2023-06-13 09:18:51 时间
Gorm是一个基于Go语言的ORM库,它提供了方便的数据库访问接口,使得开发人员可以轻松地操作数据库,而无需处理底层SQL语句的复杂性。但是,在某些情况下,Gorm提供的接口可能无法满足需求,这时我们就需要使用Gorm的原生SQL查询和执行功能。
原生SQL查询
在Gorm中执行原生SQL查询非常简单。我们只需要调用Raw
方法,然后传入SQL查询语句和查询参数即可。例如,以下代码执行了一个简单的SELECT查询:
rows, err := db.Raw("SELECT * FROM users WHERE name = ?", "John").Rows()
defer rows.Close()
for rows.Next() {
var user User
db.ScanRows(rows, &user)
fmt.Printf("%d %s\n", user.ID, user.Name)
}
在上面的代码中,我们使用了Raw
方法执行了一个SELECT查询。查询语句中使用了占位符?
来表示参数,然后我们将查询参数传递给Raw
方法。查询结果是一个*sql.Rows
对象,我们需要使用ScanRows
方法将查询结果转换为Gorm的模型对象。
原生SQL执行
除了查询,我们还可以使用Gorm执行原生SQL语句。在Gorm中执行原生SQL语句的方法是Exec
。例如,以下代码执行了一个简单的UPDATE语句:
result := db.Exec("UPDATE users SET name = ? WHERE id = ?", "John", 1)
fmt.Println(result.RowsAffected())
在上面的代码中,我们使用了Exec
方法执行了一个UPDATE语句。查询语句中使用了占位符?
来表示参数,然后我们将查询参数传递给Exec
方法。执行结果是一个sql.Result
对象,我们可以使用RowsAffected
方法获取受影响的行数。
相关文章
- 使用sp_executesql存储过程执行动态SQL查询
- SQL Server中参数化SQL写法遇到parameter sniff ,导致不合理执行计划重用的快速解决方法
- SQL语句执行顺序详解
- sql server代理中作业执行SSIS包失败的解决办法
- PostgreSQL 03000: sql_statement_not_yet_complete 报错 故障修复 远程处理
- 查询Oracle中正在执行和执行过的SQL语句
- SQL Error (1055) sql_mode=only_full_group_by详解数据库
- JSP JSTL <sql:query>标签:通过SQL语句查询
- MySQL服务器的SQL模式(sql_mode变量)
- MySQL操作:执行SQL语句(mysql执行sql语句)
- MSSQL实现快速导入SQL文件(mssql导入sql文件)
- sql server比较Oracle 与 SQL Server的优缺点(oracleltgt)
- MySQL备份SQL:确保数据安全(mysql备份sql)
- 轻松实现MySQL SQL批量执行方法,快速操作数据库(mysql批量执行sql)
- 重启Oracle服务: 用SQL Plus执行SHUTDOWN和STARTUP命令(oracle服务重启命令)
- 手把手教你使用Oracle 进行SQL除法操作(oracle除法sql)
- SQL Server宽表:最优解决方案(宽表 sqlserver)
- 区别对比分析:SQL与MSSQL的异同(sql和mssql的)
- Oracle数据库:SQL文件的执行步骤详解(oracle如何执行sql文件)
- Oracle 分区SQL提高查询效率(oracle分区sql)
- 掌握Oracle中的SQL语句奥妙(oracle中sql语句)
- Oracle终结SQL:解救数据库之路(oracle终止sql)
- MySQL中SQL如何执行乘法运算(mysql中sql如何乘)
- 利用SQL查询Redis中的数据(用sql查询redis)
- 如何合并两条 MySQL SQL 语句(mysql两条sql合并)
- 如何在MySQL中运行SQL查询(mysql上运行sql)
- MySQL 上下级 SQL 查询技巧(mysql 上下级sql)
- MySQL报错无法执行SQL,该如何解决(mysql不能执行sql)
- Oracle与SQL连接之路追求数据的完美结合(oracle与sql链接)
- 从Oracle SQL精粹中走向数据库专家(oracle sql精粹)
- T-SQL查询语句的执行顺序解析