代码:
// demo project main.go
package main
import (
"database/sql"
"fmt"
"time"
_ "github.com/go-sql-driver/mysql"
)
type row_data struct {
id int64
name string
url string
}
func main() {
var db *sql.DB
var err error
var res sql.Result
var rows *sql.Rows
var id int64
var begin, end time.Time
var data row_data
//准备
db, err = sql.Open("mysql", "test:123456@tcp(172.16.2.147:3306)/test?charset=utf8")
if nil != err {
fmt.Println("open fail", err.Error())
}
//连接(测试)
err = db.Ping()
if nil != err {
fmt.Println("connect fail,", err.Error())
}
//插入
begin = time.Now()
res, err = db.Exec("INSERT INTO `web` (`name`,`url`) VALUES ('jues笔记','http://note.jues.org.cn')")
end = time.Now()
if nil != err {
fmt.Println("INSERT fail,", err.Error())
} else {
id, err = res.LastInsertId()
fmt.Println("INSERT success,id=", id, ",time=", end.Sub(begin))
}
//查询
begin = time.Now()
rows, err = db.Query("SELECT * FROM `web`")
if nil != err {
fmt.Println("SELECT fail,", err.Error())
} else {
for rows.Next() {
rows.Scan(&data.id, &data.name, &data.url)
fmt.Println("data=", data)
}
}
end = time.Now()
fmt.Println("SELECT success,time=", end.Sub(begin))
//更新
begin = time.Now()
res, err = db.Exec("UPDATE `web` SET `name`=?,`url`=? WHERE `id`=?", "Go语言MySQL操作", "http://note.jues.org.cn/node/150", id)
end = time.Now()
if nil != err {
fmt.Println("UPDATE fail,", err.Error())
} else {
fmt.Println("UPDATE success,id=", id, ",time=", end.Sub(begin))
}
//删除
begin = time.Now()
res, err = db.Exec("DELETE FROM `web` WHERE `id`=?", id)
end = time.Now()
if nil != err {
fmt.Println("DELETE fail,", err.Error())
} else {
fmt.Println("DELETE success,id=", id, ",time=", end.Sub(begin))
}
}
运行结果:
INSERT success,id= 1 ,time= 14.0008ms
data= {1 jues笔记 http://note.jues.org.cn}
SELECT success,time= 1ms
UPDATE success,id= 1 ,time= 11.0007ms
DELETE success,id= 1 ,time= 14.0008ms