Golang - Mysql ang Http Basic fucntions

前端之家收集整理的这篇文章主要介绍了Golang - Mysql ang Http Basic fucntions前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天总结了一些Golang的基本用法,作为记录在此!

package main

import (
	"database/sql"
	"fmt"
	"io/IoUtil"
	"log"
	_ "MysqL-master/MysqL-master"
	"net/http"
	"strings"
)

func httpGet(url string) {

	resp,err := http.Get(url)
	if err != nil {
		// handle error
	}

	defer resp.Body.Close()

	body,err := IoUtil.ReadAll(resp.Body)
	if err != nil {
		// handle error
	}

	fmt.Println(string(body))
}

func httpPost(url string) {

	resp,err := http.Post(url,"application/x-www-form-urlencoded",strings.NewReader("name=cjb"))
	if err != nil {
		fmt.Println(err)
	}

	defer resp.Body.Close()

	body,err := IoUtil.ReadAll(resp.Body)
	if err != nil {
		// handle error
	}

	fmt.Println(string(body))
}

func getConn() *sql.DB {
	//db,err := sql.Open("MysqL","root:1234@tcp(localhost:3306)/psmdb")
	db,"root:1234@tcp(localhost:3306)/psmdb")

	if err != nil {
		//log.Println(err)
	}

	err = db.Ping()

	if err != nil {
		log.Fatal(err)
	}

	println("connection MysqL success.")

	return db
}

func query(db *sql.DB) {

	rows,err := db.Query("select id,username from psm_user where username = ?","changeit")
	if err != nil {
		log.Println(err)
	}

	defer rows.Close()

	var id int
	var name string
	for rows.Next() {
		err := rows.Scan(&id,&name)
		if err != nil {
			log.Fatal(err)
		}
		fmt.Println("id:",id,",name:",name)
	}

	err = rows.Err()
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("query success")
}

func insert(db *sql.DB) {

	stmt,err := db.Prepare("INSERT INTO psm_user(username,password) VALUES(?,?)")

	defer stmt.Close()

	if err != nil {
		log.Println(err)
	}

	stmt.Exec("changeit","1234")
	fmt.Println("insert success")
}

func delete(db *sql.DB) {

	tx,_ := db.Begin()

	stmt,err := db.Prepare("DELETE FROM psm_user WHERE username=?")
	stmt.Exec("changeit")

	defer stmt.Close()

	if err != nil {
		// hand err
		tx.Rollback()
		fmt.Println("delete error")
	}

	tx.Commit()
	fmt.Println("delete success")
}

func update(db *sql.DB) {

	tx,err := db.Prepare("update psm_user set username = ?,password = ?")
	stmt.Exec("changeit")
	stmt.Exec("1234")

	defer stmt.Close()

	if err != nil {
		// hand err
		tx.Rollback()
		fmt.Println("update error")
	}

	tx.Commit()
	fmt.Println("update success")
}

func main() {

	httpGet("http://localhost:8088/SpringDemo/home/users/1")

	httpPost("http://localhost:8088/SpringDemo/home/user")

	db := getConn()

	insert(db)

	query(db)

	update(db)

	delete(db)
}
结果输出

[ `go run main.go` | done: 5.25s ]
	{"id":1,"username":"admin","password":"1234"}
	{"id":2,"username":"hpe4test","password":"1234"}
	insert success
	id: 7,name: changeit
	query success
	update success
	delete success
	
	connection MysqL success.
[ C:/MyGo/src/ ] # 

注:

驱动下载地址:https://github.com/go-sql-driver/MysqL/ 原文链接:https://www.f2er.com/go/189836.html

猜你在找的Go相关文章