在Linux下使用Go语言进行数据库操作时,需要安装相应的数据库驱动,并使用Go的database/sql
包进行数据库操作。以下是一些基本的操作技巧和示例代码:
在终端中运行以下命令来安装MySQL驱动:
go get -u github.com/go-sql-driver/mysql
在终端中运行以下命令来安装PostgreSQL驱动:
go get -u github.com/lib/pq
在终端中运行以下命令来安装SQLite3驱动:
go get github.com/mattn/go-sqlite3
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 数据库连接信息
dsn := "user:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
// 连接到数据库
db, err := sql.Open("mysql", dsn)
if err != nil {
panic(err)
}
defer db.Close()
// 测试数据库连接
err = db.Ping()
if err != nil {
panic(err)
}
fmt.Println("Connected to the MySQL database!")
}
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
func main() {
// 数据库连接信息
connStr := "host=localhost user=postgres password=secret dbname=mydb sslmode=disable"
// 连接到数据库
db, err := sql.Open("postgres", connStr)
if err != nil {
panic(err)
}
defer db.Close()
// 测试数据库连接
err = db.Ping()
if err != nil {
panic(err)
}
fmt.Println("Connected to the PostgreSQL database!")
}
package main
import (
"database/sql"
"fmt"
_ "github.com/mattn/go-sqlite3"
)
func main() {
// 连接数据库
db, err := sql.Open("sqlite3", "./example.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 测试数据库连接
err = db.Ping()
if err != nil {
log.Fatal(err)
}
fmt.Println("Connected to the SQLite database!")
}
var name string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", 1).Scan(&name)
if err != nil {
log.Fatal(err)
}
fmt.Println("用户名:", name)
rows, err := db.Query("SELECT id, name FROM users")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id int
var name string
rows.Scan(&id, &name)
fmt.Println(id, name)
}
result, err := db.Exec("INSERT INTO users(name, age) VALUES(?, ?)", "Alice", 25)
id, _ := result.LastInsertId()
fmt.Println("新插入用户ID:", id)
// 更新
_, err = db.Exec("UPDATE users SET age=? WHERE id=?", 30, 1)
// 删除
_, err = db.Exec("DELETE FROM users WHERE id=?", 1)
stmt, err := db.Prepare("INSERT INTO users(name, age) VALUES(?, ?)")
以上是在Linux下使用Go语言进行数据库操作的一些基本技巧和示例代码。根据具体的数据库类型和需求,可以选择相应的驱动并进行相应的操作。