【Go】连接本地MySQL读取数据「建议收藏」

【Go】连接本地MySQL读取数据「建议收藏」如题。对Go的网页请求参数有一些了解,从头开始呗。 数据库的goods表 package main import ( “fmt” “log” “net/http” “strconv” “databa…

【Go】连接本地MySQL读取数据[数据库教程]

如题。对Go的网页请求参数有一些了解,从头开始呗。

数据库的goods表

技术分享图片

技术分享图片

package main

import (
    "fmt"
    "log"
    "net/http"
    "strconv"
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)

func AddHandler(w http.ResponseWriter, r *http.Request) {
    vars := r.URL.Query()
    a := vars.Get("para")
    b := vars.Get("para2")

    inta, _ := strconv.Atoi(a)
    intb, _ := strconv.Atoi(b)

    fmt.Println(r.Method, r.URL, r.Host, vars)

    fmt.Println(r.Proto)
    fmt.Fprintln(w, inta+intb) 
}

type Good struct {
    Name string
    Count string
    Price string
}

func CheckErr(err error, paras ...string) {
    if err != nil {
        for _, val := range paras {
            log.Println(val)
        }
        log.Fatal(err)
    }
}

func main() {
    db, _ := sql.Open("mysql", "root:[email protected](127.0.0.1:3306)/mysql")
    defer db.Close()
    err := db.Ping()
    CheckErr(err, "SQLErr")

    log.Println("Success")
    query := "select * from goods"
    rows, _ := db.Query(query)

    var id, name, count, price string
    var nameCount map[string] int
    nameCount = make(map[string]int)
    for rows.Next() {
        rows.Scan(&id, &name, &count, &price)
        _count, err := strconv.Atoi(count)
        CheckErr(err, id, name, count, price)
        _, ok := nameCount[name]
        if (ok) {
            nameCount[name] += _count
        } else {
            nameCount[name] = _count
        }
    }

    for k, v := range nameCount {
        fmt.Println(k, v)
    }

    http.HandleFunc("/", AddHandler)
    log.Println("Listen : 15233")
    err = http.ListenAndServe("0.0.0.0:15233", nil)
    CheckErr(err, "ListenErr")
    fmt.Println("Start open")    
}

代码100分

View Code

运行命令: go run test.go

技术分享图片

浏览器地址输入 localhost:15233。

 

【Go】连接本地MySQL读取数据

原文:https://www.cnblogs.com/zhouys96/p/12793268.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8758.html

(0)
上一篇 2023-02-22 15:00
下一篇 2023-02-22

相关推荐

  • flink1.12 hive_flink docker

    flink1.12 hive_flink dockerApache Flink社区宣布Flink 1.10.0正式发布! 本次Release版本修复1.2K个问题,对Flink作业的整体性能和稳定性做了重大改进,同时增加了对K8S,Python的支持。

    2023-01-28
    149
  • redis命令获取key_redis快速入门

    redis命令获取key_redis快速入门《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。本文主要讲述Redis的Key相关命令,主要包含以下内容: 【Key过期命令】:EXPIRE、PEXP…

    2022-12-15
    145
  • 如何查看Django版本

    如何查看Django版本如果你是一名Python工程师,那么你一定知道Django。Django是一个快速开发Web应用程序的框架,它有着强大、快速、安全、易于扩展的特点。然而,在使用Django时,有时候我们需要知道Django的版本。本文将会详细介绍多个方面如何查看Django的版本。

    2024-04-26
    66
  • Python工程师实战

    Python工程师实战Python 语言自 1990 年推出以来,逐步成为一门应用广泛的高级编程语言。Python 除了被广泛应用于 Web 开发、数据科学、自然语言处理等领域外,还是一门易学易用、可移植性高、可维护性强、社区活跃的编程语言。

    2024-08-04
    32
  • CentOS 7.7下安装Mysql 8.0步骤详解

    CentOS 7.7下安装Mysql 8.0步骤详解本次安装Mysql的CentOS版本是7.7 1.下载Mysql 首先去Mysql官网下载安装包,网址 推荐大家下载Linux通用版本的,便于管理安装位置,也方便一台服务器安装多个版本的mysql,下

    2023-02-27
    144
  • 日常记录-oracle建立定时计划,调用存储过程「建议收藏」

    日常记录-oracle建立定时计划,调用存储过程「建议收藏」日常记录-oracle建立定时计划,调用存储过程 前言 oracle 数据库有一个表,数据量50亿多,现在需要对表进行全量的 update 操作,因为全表的数据量过大,所以无法直接update,最后…

    2023-01-24
    161
  • 关于Could not load driverClass ${jdbc.driverClassName}问题解决方案[通俗易懂]

    关于Could not load driverClass ${jdbc.driverClassName}问题解决方案[通俗易懂] 转自https://www.cnblogs.com/tmftmb/p/7173846.html 在spring与mybatis3整合时一直遇到Could not load driverCla…

    2023-03-24
    151
  • Win10 下载、安装 Navicat 15并激活

    Win10 下载、安装 Navicat 15并激活一、Win10 下载、安装 Navicat 15 1、关闭安全中心的实时保护 因为 注册机 可能会被系统判定为 有害文件,可能会自动删除,所以先将实时保护关闭,再去使用注册机激活,激活后,再打开实时保

    2023-02-19
    154

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注