在Go语言中,使用sqlx库进行数据库操作时,可以使用Exec()函数执行SQL语句。
下面是一个示例代码,展示了如何封装sqlx的Exec()函数:
package main
import (
"fmt"
"log"
"github.com/jmoiron/sqlx"
_ "github.com/go-sql-driver/mysql" // 导入MySQL驱动
)
// 定义数据库连接信息
var db *sqlx.DB
// 初始化数据库连接
func initDB() {
dsn := "root:password@tcp(127.0.0.1:3306)/testdb?charset=utf8mb4&parseTime=True&loc=Local"
var err error
db, err = sqlx.Open("mysql", dsn)
if err != nil {
log.Fatalln("Failed to connect to database:", err)
}
err = db.Ping()
if err != nil {
log.Fatalln("Failed to ping database:", err)
}
fmt.Println("Connected to database!")
}
// 执行SQL语句,并返回影响的行数和错误信息
func executeSQL(sql string) (int64, error) {
result, err := db.Exec(sql)
if err != nil {
return 0, fmt.Errorf("failed to execute SQL: %v", err)
}
rowsAffected, _ := result.RowsAffected()
return rowsAffected, nil
}
func main() {
initDB()
sql := "DELETE FROM users WHERE id = ?"
rowsAffected, err := executeSQL(sql, 1)
if err != nil {
log.Println(err)
} else {
fmt.Printf("%d row(s) affected.\n", rowsAffected)
}
}
上述代码演示了如何使用sqlx库的Exec()函数执行一条SQL语句,这里以删除用户为例。你可以根据具体需求修改和扩展代码。
内容由零声教学AI助手提供,问题来源于学员提问




