linux

Golang如何在Linux下进行数据库操作

小樊
47
2025-10-07 20:39:12
栏目: 编程语言

在Golang中,我们可以使用第三方库来执行数据库操作。对于Linux系统,我们通常使用MySQL或PostgreSQL作为数据库。这里我将分别为MySQL和PostgreSQL提供示例。

  1. MySQL

首先,确保已经安装了MySQL数据库,并安装了Go的MySQL驱动。可以使用以下命令安装:

go get -u github.com/go-sql-driver/mysql

接下来,创建一个名为main.go的文件,并添加以下代码:

package main

import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	// 连接数据库
	db, err := sql.Open("mysql", "username:password@tcp(localhost:3306)/dbname")
	if err != nil {
		panic(err)
	}
	defer db.Close()

	// 测试连接
	err = db.Ping()
	if err != nil {
		panic(err)
	}

	fmt.Println("Connected to the database!")

	// 插入数据
	query := "INSERT INTO users (name, age) VALUES (?, ?)"
	result, err := db.Exec(query, "John Doe", 30)
	if err != nil {
		panic(err)
	}

	lastInsertId, _ := result.LastInsertId()
	fmt.Printf("Inserted user with ID: %d\n", lastInsertId)

	// 查询数据
	rows, err := db.Query("SELECT id, name, age FROM users")
	if err != nil {
		panic(err)
	}
	defer rows.Close()

	for rows.Next() {
		var id int
		var name string
		var age int
		err = rows.Scan(&id, &name, &age)
		if err != nil {
			panic(err)
		}
		fmt.Printf("User: %d, %s, %d\n", id, name, age)
	}
}

usernamepasswordlocalhost3306dbname替换为实际的MySQL数据库连接信息。

运行程序:

go run main.go
  1. PostgreSQL

首先,确保已经安装了PostgreSQL数据库,并安装了Go的PostgreSQL驱动。可以使用以下命令安装:

go get -u github.com/lib/pq

接下来,创建一个名为main.go的文件,并添加以下代码:

package main

import (
	"database/sql"
	"fmt"
	_ "github.com/lib/pq"
)

func main() {
	// 连接数据库
	db, err := sql.Open("postgres", "user=username dbname=dbname password=password sslmode=disable")
	if err != nil {
		panic(err)
	}
	defer db.Close()

	// 测试连接
	err = db.Ping()
	if err != nil {
		panic(err)
	}

	fmt.Println("Connected to the database!")

	// 插入数据
	query := "INSERT INTO users (name, age) VALUES ($1, $2) RETURNING id"
	var lastInsertId int
	err = db.QueryRow(query, "John Doe", 30).Scan(&lastInsertId)
	if err != nil {
		panic(err)
	}
	fmt.Printf("Inserted user with ID: %d\n", lastInsertId)

	// 查询数据
	rows, err := db.Query("SELECT id, name, age FROM users")
	if err != nil {
		panic(err)
	}
	defer rows.Close()

	for rows.Next() {
		var id int
		var name string
		var age int
		err = rows.Scan(&id, &name, &age)
		if err != nil {
			panic(err)
		}
		fmt.Printf("User: %d, %s, %d\n", id, name, age)
	}
}

userdbnamepassword替换为实际的PostgreSQL数据库连接信息。

运行程序:

go run main.go

这些示例展示了如何在Linux下使用Golang进行基本的数据库操作。你可以根据自己的需求修改代码以满足实际应用场景。

0
看了该问题的人还看了