db insert
This commit is contained in:
parent
1f68bd94f3
commit
e5d890a328
@ -10,18 +10,19 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type ServiceList struct {
|
type ServiceList struct {
|
||||||
Id int32 `service id`
|
Id int32 `json:"id"`
|
||||||
Name string `service name`
|
Name string `json:"name"`
|
||||||
Host string `hostip`
|
Host string `json:"host"`
|
||||||
area string `area`
|
Area string `json:"area"`
|
||||||
port int `port`
|
Port int32 `json:"port"`
|
||||||
Url string `monitor url`
|
Url string `json:"url"`
|
||||||
user string `user`
|
User string `json:"user"`
|
||||||
sendto string `alter message send to`
|
Sendto string `json:"sendto"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetServiceList(area string) (ss []ServiceList) {
|
func GetServiceList(area string) ([]ServiceList, error) {
|
||||||
var myconn config.MysqlConf
|
var myconn config.MysqlConf
|
||||||
|
var v []ServiceList
|
||||||
myconn.GetMysqlConn()
|
myconn.GetMysqlConn()
|
||||||
|
|
||||||
path := strings.Join([]string{myconn.User, ":", myconn.Passwd, "@tcp(", myconn.Conn, ")/", "services", "?charset=utf8"}, "")
|
path := strings.Join([]string{myconn.User, ":", myconn.Passwd, "@tcp(", myconn.Conn, ")/", "services", "?charset=utf8"}, "")
|
||||||
@ -36,28 +37,36 @@ func GetServiceList(area string) (ss []ServiceList) {
|
|||||||
//验证连接
|
//验证连接
|
||||||
if err := db.Ping(); err != nil {
|
if err := db.Ping(); err != nil {
|
||||||
log.Print("opon database fail")
|
log.Print("opon database fail")
|
||||||
return
|
return v, err
|
||||||
}
|
}
|
||||||
rows, err := db.Query("select id,name,host,url FROM services.services_list where area=?", area)
|
rows, err := db.Query("select id,name,host,area,port,url,user,sendto FROM services.services_list where area=?", area)
|
||||||
//获取完毕释放rows,阻止更多的列举
|
//获取完毕释放rows,阻止更多的列举
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("获取错误:", err)
|
log.Println("获取错误:", err)
|
||||||
return
|
return v, err
|
||||||
}
|
}
|
||||||
//如果有数据记录Next指针就不为true
|
//如果有数据记录Next指针就不为true
|
||||||
var v []ServiceList
|
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var id int32
|
var id int32
|
||||||
var name string
|
var name string
|
||||||
var host string
|
var host string
|
||||||
|
var area string
|
||||||
|
var port int32
|
||||||
var url string
|
var url string
|
||||||
rows.Scan(&id, &name, &host, &url)
|
var user string
|
||||||
|
var sendto string
|
||||||
|
rows.Scan(&id, &name, &host, &area, &port, &url, &user, &sendto)
|
||||||
var s ServiceList
|
var s ServiceList
|
||||||
s.Id = id
|
s.Id = id
|
||||||
s.Name = name
|
s.Name = name
|
||||||
s.Host = host
|
s.Host = host
|
||||||
s.Url = url
|
s.Url = url
|
||||||
|
s.Port = port
|
||||||
|
s.Area = area
|
||||||
|
s.User = user
|
||||||
|
s.Sendto = sendto
|
||||||
v = append(v, s)
|
v = append(v, s)
|
||||||
//log.Println(s)
|
//log.Println(s)
|
||||||
}
|
}
|
||||||
@ -65,9 +74,9 @@ func GetServiceList(area string) (ss []ServiceList) {
|
|||||||
err = rows.Err()
|
err = rows.Err()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("other error:", err)
|
log.Println("other error:", err)
|
||||||
return v
|
return v, err
|
||||||
}
|
}
|
||||||
|
|
||||||
//log.Println("return list with area", v)
|
//log.Println("return list with area", v)
|
||||||
return v
|
return v, nil
|
||||||
}
|
}
|
||||||
|
75
cmd/mmysql/servicestatus.go
Normal file
75
cmd/mmysql/servicestatus.go
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
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("成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -26,31 +26,50 @@ func init() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type ServiceStatus struct {
|
func test_db_query() {
|
||||||
id int32 `service id`
|
//var m mmysql.ServiceList
|
||||||
costtime int32 `monitor cost time second`
|
|
||||||
status bool `serivces status`
|
vv, err := mmysql.GetServiceList("bj")
|
||||||
clientip string `monitor run client ip`
|
if err != nil {
|
||||||
client_area string `client area`
|
Error.Println(err)
|
||||||
|
log.Panic("conn mysql failed!")
|
||||||
|
}
|
||||||
|
jsons, errs := json.Marshal(vv)
|
||||||
|
if errs != nil {
|
||||||
|
Error.Println(errs.Error())
|
||||||
|
log.Panic("conver struct failed!", vv)
|
||||||
|
}
|
||||||
|
Info.Println(string(jsons))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetServiceStatus(c *ServiceStatus) bool {
|
func test_db_insert() {
|
||||||
Info.Println("get message from client", c)
|
var v3 []mmysql.ServiceStatus
|
||||||
return true
|
|
||||||
}
|
v1 := mmysql.ServiceStatus{
|
||||||
func SaveServiceStatus() bool {
|
Id: 1,
|
||||||
return true
|
Cost: 1199,
|
||||||
|
Ip: "192.168.100.1",
|
||||||
|
Status: true,
|
||||||
|
Area: "bj",
|
||||||
|
}
|
||||||
|
|
||||||
|
v2 := mmysql.ServiceStatus{
|
||||||
|
Id: 1,
|
||||||
|
Cost: 2000,
|
||||||
|
Ip: "192.168.100.2",
|
||||||
|
Status: true,
|
||||||
|
Area: "bj",
|
||||||
|
}
|
||||||
|
v3 = append(v3, v1)
|
||||||
|
v3 = append(v3, v2)
|
||||||
|
mmysql.SaveServiceStatus(v3)
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
Info.Println("run main")
|
Info.Println("run main")
|
||||||
//var m mmysql.ServiceList
|
//test_db_query()
|
||||||
vv := mmysql.GetServiceList("bj")
|
test_db_insert()
|
||||||
jsons, errs := json.Marshal(vv)
|
|
||||||
if errs != nil {
|
|
||||||
Error.Println(errs.Error())
|
|
||||||
}
|
|
||||||
Info.Println(string(jsons))
|
|
||||||
|
|
||||||
//Warning.Println(string(jsons))
|
//Warning.Println(string(jsons))
|
||||||
//for i := 0; i < len(vv); i++ {
|
//for i := 0; i < len(vv); i++ {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user