package main
import (
"database/sql"
"encoding/json"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 连接到MySQL数据库
db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/test4")
if err != nil {
panic(err.Error())
}
defer db.Close()
// 定义变量
name := 1231321
// 拼接SQL语句
sql := fmt.Sprintf("SELECT * FROM users WHERE name = %v", name)
// 执行SQL查询
rows, err := db.Query(sql)
if err != nil {
panic(err.Error())
}
defer rows.Close()
// 定义一个切片,用于存储查询结果
var data []map[string]interface{}
// 遍历查询结果
for rows.Next() {
var name string
var number string
err = rows.Scan(&name, &number)
if err != nil {
panic(err.Error())
}
// 定义一个map,用于存储每一行的数据
row := make(map[string]interface{})
row["name"] = name
row["number"] = number
fmt.Println(name, number)
// 将map存储到切片中
data = append(data, row)
}
// 将切片转换为JSON格式
jsonData, err := json.Marshal(data)
if err != nil {
panic(err.Error())
}
fmt.Println("我是切片格式", data)
// 输出JSON格式数据
fmt.Println("我是json格式", string(jsonData))
}
效果