• 【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:pwd@(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")    
    }
    View Code

    运行命令: go run test.go

    浏览器地址输入 localhost:15233/get?para=1&para=10。页面上呈现11。

  • 相关阅读:
    Hibernate 多表查询结果集的处理
    is not mapped [from错误
    input输入框内,焦点后文字消失;placeholder 与 value 区别
    滚动文字JS
    安装mysql和xampp遇到问题
    python数据结构总结
    翻译二--创建一个Web测试计划
    jmeter元件执行顺序及简介
    testlink for windows 安装
    postman使用
  • 原文地址:https://www.cnblogs.com/zhouys96/p/12793268.html
Copyright © 2020-2023  润新知