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 ,就可以插入数据了。
参考: