type User struct {
Id int `json:"Id"`
Name string `json:"Name"`
Age int `json:"Age"`
Addtime string `json:"Addtime`
}
connStr := "root:root@tcp(127.0.0.1)/onego?loc=Local" //这个loc=Local是时时间等于本地时间,不然时间不对的话,添加的时候添加时间是错的
db, err := sql.Open("mysql", connStr)
if err != nil {
log.Fatal(err.Error)
return
}
rows, errq := db.Query("select id,name,age,addtime from go_users")
if errq != nil {
log.Fatal(errq.Error)
return
}
//定义一个users
var users []User
for rows.Next() {
var u User
//注意 这里的数据要和查出来的完全一致 不然会报错
errn := rows.Scan(&u.Id, &u.Name, &u.Age, &u.Addtime)
if errn != nil {
fmt.Printf("%v", errn)
}
// 将每一行数据添加到users里面
users = append(users, u)
}
//输出到html页面
c.HTML(http.StatusOK, "index.html", gin.H{"res": users})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>index</title>
</head>
<body>
{{ range $v := .res}}
<p>{{ $v.Id }}</p>
<p>{{ $v.Name }}</p>
<p>{{ $v.Age }}</p>
<p>{{ $v.Addtime }}</p>
{{ end }}
</body>
</html>
完整代码
package pck
import (
"database/sql"
"fmt"
"log"
"net/http"
"github.com/gin-gonic/gin"
_ "github.com/go-sql-driver/mysql"
)
type User struct {
Id int `json:"Id"`
Name string `json:"Name"`
Age int `json:"Age"`
Addtime string `json:"Addtime`
}
//Index 首页
func Index(c *gin.Context) {
//链接数据库
connStr := "root:root@tcp(127.0.0.1)/onego?loc=Local"
db, err := sql.Open("mysql", connStr)
if err != nil {
log.Fatal(err.Error)
return
}
//查询数据
rows, errq := db.Query("select id,name,age,addtime from go_users")
if errq != nil {
log.Fatal(errq.Error)
return
}
var users []User
//遍历结果
for rows.Next() {
var u User
errn := rows.Scan(&u.Id, &u.Name, &u.Age, &u.Addtime)
if errn != nil {
fmt.Printf("%v", errn)
}
users = append(users, u)
}
c.HTML(http.StatusOK, "index.html", gin.H{"res": users})
}
0 Comments