linux

如何用Golang日志记录数据库操作

小樊
39
2025-11-29 12:44:41
栏目: 编程语言

在Golang中,我们可以使用标准库"log"来记录数据库操作。以下是一个简单的示例,展示了如何使用Golang记录数据库操作:

  1. 首先,导入所需的包:
package main

import (
	"database/sql"
	"fmt"
	"log"
	_ "github.com/go-sql-driver/mysql"
)
  1. 定义一个函数来执行数据库操作并记录日志:
func performDatabaseOperation(db *sql.DB) {
	// 开始事务
	tx, err := db.Begin()
	if err != nil {
		log.Printf("Error starting transaction: %v", err)
		return
	}

	// 准备SQL语句
	stmt, err := tx.Prepare("INSERT INTO users (name, age) VALUES (?, ?)")
	if err != nil {
		log.Printf("Error preparing statement: %v", err)
		tx.Rollback()
		return
	}
	defer stmt.Close()

	// 执行SQL语句
	_, err = stmt.Exec("John Doe", 30)
	if err != nil {
		log.Printf("Error executing statement: %v", err)
		tx.Rollback()
		return
	}

	// 提交事务
	err = tx.Commit()
	if err != nil {
		log.Printf("Error committing transaction: %v", err)
		return
	}

	log.Println("Database operation completed successfully")
}
  1. 在主函数中连接到数据库并调用performDatabaseOperation函数:
func main() {
	// 连接到数据库
	db, err := sql.Open("mysql", "username:password@tcp(localhost:3306)/dbname")
	if err != nil {
		log.Fatalf("Error connecting to database: %v", err)
	}
	defer db.Close()

	// 执行数据库操作并记录日志
	performDatabaseOperation(db)
}

这个示例展示了如何使用Golang记录数据库操作。在实际应用中,您可能需要根据实际需求调整代码,例如使用不同的数据库驱动程序、处理不同的SQL语句等。

0
看了该问题的人还看了