gorm快速使用

gorm快速使用

安装

go get -u github.com/jinzhu/gorm

快速使用

   package main
   
   import (
       "github.com/jinzhu/gorm"
       _ "github.com/jinzhu/gorm/dialects/sqlite"
   )
   //模型:为表中的字段,记得字段名开头大写
   type Patient struct {
       //基本模型定义gorm.Model,包括字段ID,CreatedAt,UpdatedAt,DeletedAt,你可以将它嵌入你的模型,或者只写你想要的字段,或者不需要可以干脆不要
	//gorm.Model   
	Patientid string
	Name string
	Gender int64
}

//此例为postgresql
func main() {
	db,err := gorm.Open("postgres", "host=*** user=*** dbname=*** sslmode=disable password=***")
	if err != nil {
        panic(err)
	}
	//不重新创建复数结尾的表,还是原来的表,可以利用原表中的结构,数据
	db.SingularTable(true) 
    //defer db.Close()
    // 创建
    Patient{Name: "huo4", Patientid: "2000",Gender:1}
	db.Create(&Patient)
	 // 读取
    var patient Patient
    db.First(&patient , "name= ?", "huo4") // 查询name为huo4的patient
    db.Where(&Patient {Name: "huo4"}).First(&patient)
    
    // 更新 - 更新patient的name为huo3
    db.Model(&patient).Where("patientid= ?", "abc").Update("name", "huo3")
    //update patient set name="huo3" where patientid="abc"
    
    // 删除 - 删除patient
    db.Delete(Patient{}, "patientid= ?", "abc")
    //delete from patienti where patientid="abc"
}
Gin是一个快速、灵活的Web框架,而GORM则是一个强大的ORM库,二者的配合可以非常方便地实现数据库操作。下面是一个简单的示例: 首先,在你的项目中引入Gin和GORM: ```go import ( "github.com/gin-gonic/gin" "gorm.io/gorm" "gorm.io/driver/mysql" ) ``` 接着,创建一个GORM的数据库连接: ```go dsn := "user:password@tcp(host:port)/database?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { panic(err) } ``` 其中,dsn是你的数据库连接信息,可以根据实际情况进行修改。 然后,在Gin中使用db进行数据库操作: ```go // 定义一个模型 type User struct { gorm.Model Name string Age int } // 获取所有用户 func getUsers(c *gin.Context) { var users []User db.Find(&users) c.JSON(http.StatusOK, gin.H{ "users": users, }) } // 创建用户 func createUser(c *gin.Context) { var user User if err := c.ShouldBindJSON(&user); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } db.Create(&user) c.JSON(http.StatusOK, gin.H{ "user": user, }) } // 更新用户 func updateUser(c *gin.Context) { var user User if err := db.First(&user, c.Param("id")).Error; err != nil { c.JSON(http.StatusNotFound, gin.H{"error": "User not found"}) return } if err := c.ShouldBindJSON(&user); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } db.Save(&user) c.JSON(http.StatusOK, gin.H{ "user": user, }) } // 删除用户 func deleteUser(c *gin.Context) { var user User if err := db.First(&user, c.Param("id")).Error; err != nil { c.JSON(http.StatusNotFound, gin.H{"error": "User not found"}) return } db.Delete(&user) c.JSON(http.StatusOK, gin.H{ "message": "User deleted", }) } // 注册路由 func registerRoutes() { router := gin.Default() router.GET("/users", getUsers) router.POST("/users", createUser) router.PUT("/users/:id", updateUser) router.DELETE("/users/:id", deleteUser) router.Run(":8080") } func main() { registerRoutes() } ``` 在上面的示例中,我们定义了一个User模型,并在Gin中注册了一些路由,用于增删改查用户。在每个路由中,我们都使用了db来进行数据库操作。例如,在getUsers函数中,我们使用了db.Find(&users)来获取所有用户;在createUser函数中,我们使用了db.Create(&user)来创建用户。通过这样的方式,我们就可以非常方便地使用GORM进行数据库操作,而不需要手动写SQL语句。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值