go基础三(http,数据库)

package main

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

func main()  {
   //testMySql()
	//testHTTP()
	testMutHandle()
}
/**
测试mysql增删改查
 */
func testMySql()  {
	fmt.Println("test mysql")
	//连接mysql
	db,err:=sql.Open("mysql","root:Figo423$@master@tcp(121.4.96.227:3306)/master")
	if err!=nil{
		fmt.Println(err)
		return
	}
	defer func() {
		//执行完成后关闭db
		if db!=nil{
			fmt.Println("db 关闭")
			db.Close()
		}
	}()
	//连接测试
	db.Ping()
	//执行sql,新增
	//stmt,er:=db.Prepare("insert into test(id,name) values(?,?)")
	//修改
	//stmt,er:=db.Prepare("update test set name=? where id=?")
	//删除
	//stmt,er:=db.Prepare("delete from test where id=?")
	//查询
	stmt,er:=db.Prepare("select * from test")


	if er!=nil{
		fmt.Println(er.Error())
		return
	}
	//新增
    //r,e:=stmt.Exec("3","test1")
	//修改
	//r,e:=stmt.Exec("andy","1")
	//删除
	//r,e:=stmt.Exec("3")
	//查询
	rows,e:=stmt.Query()
    defer func() {
		if stmt!=nil{
			fmt.Println("stmt 关闭")
			stmt.Close()
		}
	}()
	if e!=nil{
		fmt.Println(e)
		return
	}
	//增,改,删需要判断影响行数
	//count,ex:=r.RowsAffected()
	//if ex!=nil{
	//	fmt.Println(ex)
	//	return
	//}
	//if count>0{
	//	fmt.Println("执行成功")
	//}else {
	//	fmt.Println("执行失败")
	//}
    //循环查询结果
	for rows.Next(){
		var id int
		var name string
		rows.Scan(&id,&name)
		fmt.Println(id,name)
	}
	defer func() {
		if rows!=nil{
			rows.Close()
			fmt.Println("关闭数据库行")
		}
	}()

}
/**
测试Http
 */
func health(resp http.ResponseWriter,req *http.Request)  {
	resp.Header().Set("Content-Type","text/html;charset=utf-8")
	fmt.Fprintln(resp,"<b>hello,world!</b>")
}
func testHTTP()  {
	//http.HandleFunc("/health",health)

	//http.ListenAndServe("localhost:8088",nil)

}


/**
测试多处理器
*/
func first(resp http.ResponseWriter,req *http.Request)  {
	resp.Header().Set("Content-Type","text/html;charset=utf-8")
	fmt.Fprintln(resp,"<b>first!</b>")
}

/**
测试多处理器
*/
func second(resp http.ResponseWriter,req *http.Request)  {
	resp.Header().Set("Content-Type","text/html;charset=utf-8")
	fmt.Fprintln(resp,"<b>second!</b>")
}

func  testMutHandle()  {
	server:=http.Server{Addr: "localhost:8090"}
	http.HandleFunc("/first",first)
	http.HandleFunc("/second",second)
	http.HandleFunc("/param",testGetHeadAndParams)
	server.ListenAndServe()
}

/**
测试多处理器
http://localhost:8090/param?name=abc&age=12
*/
func testGetHeadAndParams(resp http.ResponseWriter,req *http.Request)  {
	h:=req.Header
	fmt.Fprintln(resp,h)
	//获取header
	fmt.Fprintln(resp,h["Accept-Encoding"])
	//获取form
	req.ParseForm()
	fmt.Fprintln(resp,req.Form)
	//第一种取法
	fmt.Fprintln(resp,req.Form["name"][0])

	//第二种取法
	fmt.Fprintln(resp,"第二种取法="+req.FormValue("name"))

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值