15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > go语言web搭建(gorm+gin+mysql)

go语言web搭建(gorm+gin+mysql)

时间:2023-06-02 01:36:02 | 来源:网站运营

时间:2023-06-02 01:36:02 来源:网站运营

go语言web搭建(gorm+gin+mysql):

一、我的环境

Mac pro + golang (IDE:goland) + dep (依赖管理工具)

二、环境搭建

利用dep下载gin,gorm

1,gin https://github.com/gin-gonic/gin

2,gorm http://gorm.book.jasperxu.com/

dep ensure -add github.com/gin-gonic/gindep ensure -update -vgolang 官方依赖管理工具 dep 使用和持续集成

(dep 添加依赖依据import内容下载,修改import后可用第二个命令更新依赖)

3,网页测试工具postman安装教程Postman使用详解

4,Mac上mysql可视化管理工具sequel pro

Mac 安装 mysql, Sequel Pro 辅助处理数据库

三、项目源码

package mainimport ( "fmt" "github.com/gin-gonic/gin" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" _ "github.com/jinzhu/gorm/dialects/sqlite")var db *gorm.DBvar err errortype Demo_user struct { Id int `gorm:"size:11;primary_key;AUTO_INCREMENT;not null" json:"id"` Age int `gorm:"size:11;DEFAULT NULL" json:"age"` Name string `gorm:"size:255;DEFAULT NULL" json:"name"` //gorm后添加约束,json后为对应mysql里的字段}func main() { db, err = gorm.Open("mysql","name:password@ip:port/databasename?charset=utf8mb4&parseTime=True&loc=Local&readTimeout=500ms") if err != nil { panic(err) }else{ fmt.Println("connect success") db.SingularTable(true) //db.AutoMigrate(&Demo_user{}) 自动建表 //fmt.Println("build table success") } defer db.Close() /* if db.HasTable("demo_user"){ fmt.Println("查找成功") } else { fmt.Println("查找失败") } */ r := gin.Default() //路径映射 r.GET("/user/init", InitPage) r.POST("/user/create", CreateUser) r.GET("/user/list", ListUser) r.POST("/user/update", UpdateUser) r.GET("/user/find", GetUser) //端口号 r.Run(":8080")}func InitPage(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", })}func CreateUser(c *gin.Context) { var user Demo_user //使用bind JSON填充对象 c.BindJSON(&user) //创建对象 db.Create(&user) //返回页面 c.JSON(200, &user)}func UpdateUser(c *gin.Context) { var user Demo_user //post方法取相应字段 id:=c.PostForm("id") //数据库查找主键=ID的第一行 e:=db.First(&user, id).Error if e!=nil{ c.AbortWithStatus(404) fmt.Println(err.Error()) }else { c.BindJSON(&user) //提交更改 db.Save(&user) c.JSON(200, &user) }}func ListUser(c *gin.Context) { var user []Demo_user line:=c.Query("line") //限制查找前line行 db.Limit(line).Find(&user) c.JSON(200, &user)}func GetUser(c *gin.Context) { id:=c.Query("id") var user Demo_user e:=db.First(&user,id).Error if e!=nil{ c.AbortWithStatus(404) fmt.Println(err.Error()) }else { c.JSON(200, &user) }}





参考文献

相关项目 使用Go,Gin和Gorm开发简单的CRUD API ; 使用Go,Gin和Gorm开发简单的CRUD API

gorm中文文档(推荐) 1.4. CRUD:读写数据 · GORM 中文文档

gin官方文档 gin-gonic/gin











关键词:语言

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭