时间:2023-06-02 01:36:02 | 来源:网站运营
时间:2023-06-02 01:36:02 来源:网站运营
go语言web搭建(gorm+gin+mysql):dep ensure -add github.com/gin-gonic/gindep ensure -update -v
golang 官方依赖管理工具 dep 使用和持续集成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) }}
关键词:语言