go : 连接数据库并插入数据

package main

import (
	"database/sql"
	"fmt"
	"log"
	"net/http"
	"reflect"
	"strings"

	_ "github.com/go-sql-driver/mysql"
)

func sayhelloName(w http.ResponseWriter, r *http.Request) {
	r.ParseForm()       //解析参数,默认是不会解析的
	fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息
	fmt.Println("path", r.URL.Path)
	fmt.Println("scheme", r.URL.Scheme)
	fmt.Println(r.Form["url_long"])

	fmt.Println("type:", reflect.TypeOf(r))
	printData(r)

	fmt.Fprintf(w, "Hello astaxie!") //这个写入到w的是输出到客户端的

	var ret int
	ret = max(1, 2)
	fmt.Printf("最大值是 : %d\n", ret)
	dbFun()
}

func main() {
	http.HandleFunc("/hello", sayhelloName)  //设置访问的路由
	err := http.ListenAndServe(":9091", nil) //设置监听的端口
	if err != nil {
		log.Fatal("ListenAndServe: ", err)
	}
}

func max(num1, num2 int) int {
	/* 定义局部变量 */
	var result int

	if num1 > num2 {
		result = num1
	} else {
		result = num2
	}
	return result
}

func printData(a *http.Request) {
	//	fmt.Println("num", a)
	for k, v := range a.Form {
		fmt.Println("key:", k)
		fmt.Println("val:", strings.Join(v, ""))
	}
}

func dbFun() {
	fmt.Println("===database===")
	//初始化数据库信息,此时就是一个数据库连接池
	db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8")
	IsErr(err)
	//封装SQL指令
	stmt, err := db.Prepare("INSERT hello SET name=?,age=?")
	IsErr(err)
	//执行影响指令
	result, err := stmt.Exec("jhon", "18")
	IsErr(err)
	fmt.Print(result.RowsAffected())
}

func IsErr(err error) {
	if err != nil {
		fmt.Println("程晗错误:%s", err)
	}
}

  

然后浏览器访问 http://localhost:9091/hello ,就可以插入数据了。

参考:

https://studygolang.com/articles/5269

https://www.cnblogs.com/zhja/p/5604553.html

猜你喜欢

转载自www.cnblogs.com/foxcharon/p/8961412.html
今日推荐