• golang操作数据库


      在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 
    ", id, userId, departId, tenantId)
    	}
    	query.Close()
    }
    

      

  • 相关阅读:
    2014年寒假学习规划
    二十进制数的加法--【英雄会】
    使用IBM SVC构建vSphere存储间集群
    游戏服务器学习笔记 2———— 准备工作
    php判断正常访问和外部访问
    游戏服务器学习笔记 3———— firefly 的代码结构,逻辑
    数学基础知识 ——(1)高等数学
    动态内存与智能指针
    Numpy(4)—— 保存和导入文件
    Numpy(3)—— 线性代数相关函数
  • 原文地址:https://www.cnblogs.com/zhuifenglang/p/14975220.html
Copyright © 2020-2023  润新知