• 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()
    }
    

      

  • 相关阅读:
    CI框架源码研读(整体架构)
    PHP微信公众号后台开发(Yii2实现)
    PHP后台支付的开发:微信支付和支付宝支付
    linux安装netcat 运行udp服务器
    运行swoole_server方法
    bind (ERROR 502): bind(0.0.0.0:9501) failed. Error: Address already in use [98] (端口被占用)
    随机生成红包算法
    获取分类算法
    PHP中的关系判断和注释
    php中自运算++ 或-- 的总结
  • 原文地址:https://www.cnblogs.com/zhuifenglang/p/14975220.html
Copyright © 2020-2023  润新知