加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang - Mysql ang Http Basic fucntions

发布时间:2020-12-16 18:32:12 所属栏目:大数据 来源:网络整理
导读:今天总结了一些Golang的基本用法,作为记录在此! package mainimport ("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

今天总结了一些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/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读