在golang中操作非关系型数据库(redis)和关系型数据库(MysqL)。
首先是下载数据库驱动包,因为墙的缘故,可能下载驱动包会有超时连接失败的情况,可以将镜像站点设为国能知名站点
阿里云站点:
go env -w goproxy=https://mirrors.aliyun.com/goproxy/
操作redis:
下载驱动包
go get -u github.com/gomodule/redigo/redis
开启redis服务端,代码里导入redis依赖即可,代码示例:
package main import ( "fmt" "github.com/gomodule/redigo/redis" ) var pool *redis.Pool func init() { pool = &redis.Pool{ MaxIdle: 8, MaxActive: 0, IdleTimeout: 100, Dial: func() (redis.Conn, error) { return redis.Dial("tcp", "localhost:6379") }, } } func main() { conn := pool.Get() defer conn.Close() _, err := conn.Do("MSet", "name", "stu", "hobby", "coding") if err != nil { panic(err) } s, err := redis.String(conn.Do("Get", "name")) if err != nil { panic(err) } _, err = conn.Do("del", "name") if err != nil { panic(err) } fmt.Println(s) }
操作MysqL
下载驱动包
go get -u github.com/go-sql-driver/MysqL
同样导入依赖即可,代码示例
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/MysqL" ) func main() { open, err := sql.Open("MysqL", "root:root@tcp(127.0.0.1:3306)/ztgeo?parseTime=true") if err != nil { panic(err) } defer open.Close() query, err := open.Query("select id,user_id,depart_id,tenant_id from ztgeo.base_depart_user") if err != nil { panic(err) } fmt.Println(query) for query.Next() { var id string var userId sql.NullString var departId sql.NullString var tenantId string err := query.Scan(&id,&userId,&departId,&tenantId) if err != nil { panic(err) } fmt.Printf("id=%v userId=%v departId=%v tenantId=%v \n", id, userId, departId, tenantId) } query.Close() }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。