您的位置:首页 > 理论基础 > 计算机网络

Golang - Mysql ang Http Basic fucntions

2016-04-20 00:13 344 查看
今天总结了一些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, err := sql.Open("mysql", "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, _ := db.Begin()

stmt, 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/
下载方式: 执行命令:go get github.com/go-sql-driver/mysql
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: