在Golang中,我们可以使用database/sql包和相应的数据库驱动来连接和操作数据库。以下是在Ubuntu上连接数据库的一些技巧:
go-sql-driver/mysql:go get -u github.com/go-sql-driver/mysql
对于PostgreSQL,你可以安装lib/pq:
go get -u github.com/lib/pq
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
对于PostgreSQL:
import (
"database/sql"
_ "github.com/lib/pq"
)
注意,我们在导入路径前加了一个下划线_,这是因为我们只需要驱动的初始化函数,而不需要在代码中直接使用它。
dataSourceName := "username:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
对于PostgreSQL:
dataSourceName := "user=username password=password dbname=dbname sslmode=disable"
sql.Open()函数连接到数据库。例如,对于MySQL:db, err := sql.Open("mysql", dataSourceName)
if err != nil {
log.Fatal(err)
}
defer db.Close()
对于PostgreSQL:
db, err := sql.Open("postgres", dataSourceName)
if err != nil {
log.Fatal(err)
}
defer db.Close()
db.Ping()函数检查数据库连接是否成功:err = db.Ping()
if err != nil {
log.Fatal(err)
}
db.Query()或db.Exec()函数执行SQL查询。例如,查询所有记录:rows, err := db.Query("SELECT * FROM your_table")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id int
var name string
err = rows.Scan(&id, &name)
if err != nil {
log.Fatal(err)
}
fmt.Printf("ID: %d, Name: %s\n", id, name)
}
遵循这些技巧,你应该能够在Ubuntu上使用Golang成功连接和操作数据库。