package main import ( "database/sql" "fmt" "log" "net/http" "time" _ "github.com/go-sql-driver/mysql" ) import "strings" func main() { http.HandleFunc("/getuser", getuser) s := &http.Server{ Addr: ":7080", ReadTimeout: 30 * time.Second, WriteTimeout: 30 * time.Second, MaxHeaderBytes: 1 << 20, } log.Fatal(s.ListenAndServe()) } func getuser(w http.ResponseWriter, r *http.Request) { w.Write([]byte(getuser_json())) } func getuser_json() string { db, err := sql.Open("mysql", "root:root@tcp(localhost:3306)/jeecg?charset=utf8") if err != nil { panic(err.Error()) } defer db.Close() rows, err := db.Query("select * from t_s_user") if err != nil { panic(err.Error()) } columns, err := rows.Columns() if err != nil { panic(err.Error()) } values := make([]sql.RawBytes, len(columns)) scanArgs := make([]interface{}, len(values)) for i := range values { scanArgs[i] = &values[i] } list := "[" for rows.Next() { err = rows.Scan(scanArgs...) if err != nil { fmt.Println("log:", err) panic(err.Error()) } row := "{" var value string for i, col := range values { if col == nil { value = "NULL" } else { value = string(col) } columName := strings.ToLower(columns[i]) cell := fmt.Sprintf(`"%v":"%v"`, columName, value) row = row + cell + "," } row = row[0 : len(row)-1] row += "}" list = list + row + "," } list = list[0 : len(list)-1] list += "]" fmt.Println(list) return list }
调用url : http://localhost:7080/getuser