初学 go 入门-案例-教程-记录(14)gin + gorm 两个框架结合做一个简单的小案例(一)实现读取数据
初
希望能写一些简单的教程和案例分享给需要的人
欢迎进qq群交流:546496965
我们之前接触了如何用搭建 webapi 框架 Gin blog.csdn.net/qq_36051316…
也接触了一些 使用gorm 的使用
blog.csdn.net/qq_36051316…
gin : github.com/gin-gonic/g…
目录展示
我先展示案例的目录:index.html 、 main.go 这两个文件
安装依赖
go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlserver
go get -u github.com/gin-gonic/gin
完整代码
index.html
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1, user-scalable=no">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
<script src="https://cdn.bootcss.com/vue/2.5.2/vue.min.js"></script>
<script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>
<script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
</head>
<body>
<div id="test1">
<div ref="timenow"></div>
<button @click="updateTimenow">按钮1</button>
</div>
</body>
</html>
<script>
var apiurl = "http://localhost:10001/";
var ShowGetTimeNow = "Student/GetAll"
var test1 = new Vue({
el: '#test1',
data: {
time: 1
},
mounted() {
this.$refs.timenow.innerHTML = "点击按钮获取数据";
},
methods: {
// 点击按钮,更新时间
updateTimenow: function () {
var thisRef = this.$refs;
axios({
method: 'post',
url: apiurl + ShowGetTimeNow,
responseType: 'stream'
}).then(function (response) {
console.log(response)
thisRef.timenow.innerHTML = JSON.stringify(response.data);
});
}
}
})
</script>
main.go
package main
import (
"awesomeProject/dao"
"awesomeProject/until"
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
//初始化
until.SqlClient()
r := gin.Default()
// 设置页面
r.LoadHTMLGlob("template/*")
// logo,这里不做详细的解释,可以自行百度
r.StaticFile("/favicon.ico", "./template/favicon.ico")
r.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", nil)
})
// 获取全部数据
r.POST("/Student/GetAll", func(c *gin.Context) {
students := StudentDAO.FindAll()
c.JSON(200, students)
})
// 如果是直接 r.Run() , 端口是默认 8080
r.Run(":10001")
}
gormClient.go
package until
import (
"gorm.io/driver/sqlserver"
"gorm.io/gorm"
"reflect"
)
/**
* @Description:全局 DB
*/
var (
SqlDB *gorm.DB
)
/**
* @Description: 初始化数据库
* @return *gorm.DB
*/
func SqlClient() *gorm.DB {
if SqlDB == nil || reflect.DeepEqual(SqlDB, gorm.DB{}) {
_Sql_db, err := gorm.Open(sqlserver.Open("sqlserver://cuyan:123456@120.79.19.125:1433?database=cuyan"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
SqlDB = _Sql_db
return _Sql_db
}
return SqlDB
}
student_dao.go
package StudentDAO
import "awesomeProject/until"
type Student struct {
Id int
Name string
baibai string
}
func (Student) TableName() string {
return "Student"
}
func FindAll() []Student {
var students []Student
// 查询表数据
until.SqlDB.Find(&students)
return students
}
结果展示
点击按钮后