在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語言進行數據庫操作的一些基本技巧和示例代碼。根據具體的數據庫類型和需求,可以選擇相應的驅動并進行相應的操作。