Goland 数据库编程实战:MySQL / PostgreSQL / Redis
Goland 是 JetBrains 公司推出的一款 Go 语言集成开发环境,支持众多的开发工具,包括调试、重构、代码补全、代码重构等,同时也支持众多的数据库类型的编程。
在这篇文章中,我们将深入探讨 Go 语言在 MySQL、PostgreSQL 和 Redis 数据库上的编程实战。
MySQL 数据库编程实战
在 Go 中连接 MySQL 数据库,需要使用第三方库,比如 Go-MySQL-Driver。
首先,我们需要安装 Go-MySQL-Driver。
```
go get github.com/go-sql-driver/mysql
```
然后,在代码中连接 MySQL 数据库:
```
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database")
if err != nil {
panic(err)
}
defer db.Close()
rows, err := db.Query("SELECT * FROM users")
if err != nil {
panic(err)
}
defer rows.Close()
for rows.Next() {
var id int
var name string
err = rows.Scan(&id, &name)
if err != nil {
panic(err)
}
fmt.Println(id, name)
}
}
```
在 MySQL 数据库上执行查询非常简单,只需要使用 sql.Open 打开 MySQL 连接并执行查询语句即可。
PostgreSQL 数据库编程实战
在 Go 中连接 PostgreSQL 数据库,需要使用第三方库,比如 go-pg。
首先,我们需要安装 go-pg。
```
go get github.com/go-pg/pg/v9
```
然后,在代码中连接 PostgreSQL 数据库:
```
package main
import (
"fmt"
"github.com/go-pg/pg/v9"
)
func main() {
db := pg.Connect(&pg.Options{
User: "postgres",
Password: "password",
Addr: "localhost:5432",
Database: "database",
})
defer db.Close()
var users []User
err := db.Model(&users).Select()
if err != nil {
panic(err)
}
for _, user := range users {
fmt.Println(user)
}
}
type User struct {
ID int
Name string
}
```
在 PostgreSQL 数据库上执行查询也非常简单,只需要使用 pg.Connect 连接 PostgreSQL 数据库并执行查询语句即可。
Redis 数据库编程实战
在 Go 中连接 Redis 数据库,需要使用第三方库,比如 go-redis。
首先,我们需要安装 go-redis。
```
go get github.com/go-redis/redis
```
然后,在代码中连接 Redis 数据库:
```
package main
import (
"fmt"
"github.com/go-redis/redis"
)
func main() {
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password set
DB: 0, // use default DB
})
pong, err := client.Ping().Result()
if err != nil {
panic(err)
}
fmt.Println(pong)
err = client.Set("key", "value", 0).Err()
if err != nil {
panic(err)
}
val, err := client.Get("key").Result()
if err != nil {
panic(err)
}
fmt.Println("key", val)
val2, err := client.Get("key2").Result()
if err == redis.Nil {
fmt.Println("key2 does not exist")
} else if err != nil {
panic(err)
} else {
fmt.Println("key2", val2)
}
}
```
在 Redis 数据库上执行查询也非常简单,只需要使用 redis.NewClient 连接 Redis 数据库并执行查询语句即可。
总结
本文介绍了 Go 语言在 MySQL、PostgreSQL 和 Redis 上的编程实战,希望读者能够更好地理解 Go 语言在数据库编程方面的应用,并从中受益。