golang使用gorm框架执行原生sql

golang使用gorm框架执行原生sql

gorm框架执行原生sql有两种方式,作用不同,分别是:
db.exec(“sql语句”) //执行插入删除等操作使用
db.raw(“sql语句”) //执行查询操作时使用
gorm中exec和raw方法的区别大致可以说是raw用来查询,执行其他操作用exec,因为本人也不是非常清楚,所以只好这么说。

20230612更新,上面的说法有问题,引用Stack Overflow的网友说的

(*gorm.DB).Exec does not return an error, if you want to see if your query failed or not read up on error handling with gorm. Use Exec when you don’t care about output, use Raw when you do care about the output.
大致意思是:(*gorm.DB).Exec不会返回错误。如果不关心输出,请使用Exec;如果关心输出,则使用Raw。

具体操作请看官方文档,附GORM执行Exec和Raw的官方文档
https://gorm.io/docs/sql_builder.html

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Golang使用MySQL连接池与GORM ORM库可以提高性能和效率。下面是一个简单的示例代码,展示如何使用GORM和MySQL连接池: ```go import ( "fmt" "log" "gorm.io/driver/mysql" "gorm.io/gorm" ) func main() { // 配置MySQL连接信息 dsn := "user:password@tcp(127.0.0.1:3306)/database?charset=utf8mb4&parseTime=True&loc=Local" // 使用连接池创建数据库连接 db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { log.Fatal(err) } // 设置连接池的最大空闲连接数和最大打开连接数 sqlDB, err := db.DB() if err != nil { log.Fatal(err) } sqlDB.SetMaxIdleConns(10) sqlDB.SetMaxOpenConns(100) // 使用GORM进行数据库操作 // 这里可以写入你的业务逻辑 // 关闭数据库连接 err = db.Close() if err != nil { log.Fatal(err) } fmt.Println("MySQL连接池示例代码执行完毕") } ``` 在上面的示例中,我们首先配置了MySQL连接信息,包括用户名、密码、主机和端口以及数据库名称。然后使用`gorm.Open`方法打开数据库连接,并通过`db.DB()`方法获取到底层的`*sql.DB`实例,以便设置连接池的最大空闲连接数和最大打开连接数。最后,我们可以使用GORM进行数据库操作。在结束时,记得调用`db.Close()`关闭数据库连接。 请注意,上述示例代码中使用了`gorm.io/gorm`和`gorm.io/driver/mysql`模块,这是GORM的最新版本。在你的代码中,可能需要替换成你当前使用GORM版本的模块路径。 希望对你有帮助!如有更多问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值