阅读量:2
在Linux下使用Go语言进行数据库操作时,需要安装相应的数据库驱动,并使用Go的database/sql包进行数据库操作。以下是一些基本的操作技巧和示例代码:
安装数据库驱动
MySQL
在终端中运行以下命令来安装MySQL驱动:
go get -u github.com/go-sql-driver/mysql
PostgreSQL
在终端中运行以下命令来安装PostgreSQL驱动:
go get -u github.com/lib/pq
SQLite
在终端中运行以下命令来安装SQLite3驱动:
go get github.com/mattn/go-sqlite3
连接数据库
MySQL 连接示例
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!")
}
PostgreSQL 连接示例
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!")
}
SQLite 连接示例
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!")
}
基本操作
查询单行数据(QueryRow)
var name string
err := db.QueryRow("SELECT name FROM users WHERE id = ?", 1).Scan(&name)
if err != nil {
log.Fatal(err)
}
fmt.Println("用户名:", name)
查询多行数据(Query)
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)
}
插入数据(Exec)
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)
使用预处理语句(Prepare)
stmt, err := db.Prepare("INSERT INTO users(name, age) VALUES(?, ?)")
以上是在Linux下使用Go语言进行数据库操作的一些基本技巧和示例代码。根据具体的数据库类型和需求,可以选择相应的驱动并进行相应的操作。
以上就是关于“Go语言在Linux下的数据库操作技巧”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm