在Golang中,我们可以使用第三方库来执行数据库操作。对于Linux系统,我们通常使用MySQL或PostgreSQL作为数据库。这里我将分别为MySQL和PostgreSQL提供示例。
首先,确保已经安装了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)
	}
}
将username、password、localhost、3306和dbname替换为实际的MySQL数据库连接信息。
运行程序:
go run main.go
首先,确保已经安装了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)
	}
}
将user、dbname、password替换为实际的PostgreSQL数据库连接信息。
运行程序:
go run main.go
这些示例展示了如何在Linux下使用Golang进行基本的数据库操作。你可以根据自己的需求修改代码以满足实际应用场景。