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