services_perform/cmd/mmysql/servicestatus.go
2020-10-13 14:48:24 +08:00

76 lines
1.9 KiB
Go

package mmysql
import (
"../config"
"database/sql"
"fmt"
"log"
"strings"
//导入mysql的驱动
_ "github.com/go-sql-driver/mysql"
)
type ServiceStatus struct {
Id int32 `json:"id"`
Cost int64 `json:"cost"`
Status bool `json:"status"`
Ip string `json:"ip"`
Area string `json:"area"`
}
func GetServiceStatus(c *ServiceStatus) bool {
log.Println("get message from client", c)
return true
}
func clearTransaction(tx *sql.Tx) {
err := tx.Rollback()
if err != sql.ErrTxDone && err != nil {
log.Fatalln(err)
}
}
func SaveServiceStatus(s []ServiceStatus) {
var myconn config.MysqlConf
myconn.GetMysqlConn()
path := strings.Join([]string{myconn.User, ":", myconn.Passwd, "@tcp(", myconn.Conn, ")/", "services", "?charset=utf8"}, "")
//打开数据库,前者是驱动名,所以要导入: _ "github.com/go-sql-driver/mysql"
db, err := sql.Open("mysql", path)
//tx, err := db.Begin()
if err != nil {
log.Fatalln(err)
}
//defer clearTransaction(tx)
insertText := "INSERT INTO services_status(id, cost, status,ip,area) VALUES (?,?,?,?,?)"
//rs, err := db.Exec(insertText, 4, "juejin", 1000)
//stmt, err := db.Prepare("INSERT INTO services_status(id, cost, status,ip,area) VALUES (?,?,?,?,?)")
//
//defer stmt.Close()
//if err != nil {
// log.Panic("db prepare faild!", err)
//}
for _, row := range s {
//rs, _ := stmt.Exec(row.Id, row.Cost, row.Status, row.Ip, row.Area)
rs, err := db.Exec(insertText, row.Id, row.Cost, row.Status, row.Ip, row.Area)
if err != nil {
log.Panic(err)
}
if id, _ := rs.LastInsertId(); id > 0 {
fmt.Println("插入成功")
}
//stmtTx := tx.Stmt(stmt)
//defer stmtTx.Close()
//var rs sql.Result
//for _, row := range s {
// rs, _ = stmtTx.Exec(row.Id, row.Cost, row.Status, row.Ip, row.Area)
// _ = tx.Commit()
// if n, _ := rs.RowsAffected(); n > 0 {
// fmt.Println("成功")
}
}