专栏首页陶士涵的菜地[GO] golang练习项目-gorm与mysql的增删查改操作

[GO] golang练习项目-gorm与mysql的增删查改操作

下面代码放在models包下的users.go中

表结构和struct字段是一致的,把表字段的下划线变成首字母大写的驼峰命名

创建,查找,删除,更新用户,见下面的具体方法

package models

import (
    _ "github.com/jinzhu/gorm/dialects/mysql"
)
type User struct {
    Model
    Name string `json:"name"`
    Password string `json:"password"`
    Nickname string `json:"nickname"`
    Avator string `json:"avator"`
    RoleName string `json:"role_name"`
}
func CreateUser(name string,password string,avator string,nickname string){
    user:=&User{
        Name:name,
        Password: password,
        Avator:avator,
        Nickname: nickname,
    }
    DB.Create(user)
}
func UpdateUser(id string,name string,password string,avator string,nickname string){
    user:=&User{
        Name:name,
        Avator:avator,
        Nickname: nickname,
    }
    if password!=""{
        user.Password=password
    }
    DB.Model(&User{}).Where("id = ?",id).Update(user)
}
func FindUser(username string)User{
    var user User
    DB.Where("name = ?", username).First(&user)
    return user
}
func FindUserById(id interface{})User{
    var user User
    DB.Where("id = ?", id).First(&user)
    return user
}
func DeleteUserById(id string){
    DB.Where("id = ?",id).Delete(User{})
}
func FindUsers()[]User{
    var users []User
    DB.Order("id desc").Find(&users)
    return users
}
func FindUserRole(query interface{},id interface{})User{
    var user User
    DB.Select(query).Where("user.id = ?", id).Joins("join user_role on user.id=user_role.user_id").Joins("join role on user_role.role_id=role.id").First(&user)
    return user
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [android] 保存联系人到系统通讯录

    获取ContentResolver对象,通过getContentResolver()方法

    陶士涵
  • [PHP] RBAC权限与审批流的简单数据库构想

    陶士涵
  • [Go] GO语言实战-实现标题闪烁

    因为聊天框是被iframe框进去的页面,所以在聊天框中收到websocket消息以后要把消息发送给父集页面,在父页面中闪烁标题

    陶士涵
  • IntelliJ IDEA spring mvc +mybatis 环境搭建服务器(下)直接使用类来生成Mapper:

    用户1127566
  • Mybatis的增删改查

    爱撒谎的男孩
  • MyBatis的CRUD

    MyBatis的增删改查,特点是只要定义接口,不用实现方法,sql语句在xml中配置,非常方便

    用户3112896
  • TP的404页面设置怎么这么多坑啊?

    网上有很多thinkphp的404页面制作方法,但大多太过繁琐不简便,很烦人,所以为大家分享了最便捷的404制作方法,如下。

    公众号php_pachong
  • 热门数据分析面试题。

    Sql中有一类函数叫聚合函数,比如count、sum、avg、min、max等,这些函数的可以将多行数据按照规整聚集为一行,一般聚集前的数据行要大于聚集后的数据...

    张俊红
  • Wordpress设置腾讯公益404页面

    Wordpress主题会自带404页面,如果需要替换成自定义的需要修改404.php页面,这里以腾讯公益404页面为例介绍下怎样自定义页面,如果大家没有特定的4...

    三杯水Plus
  • 3道TMD热门数据分析面试题,我们帮你解了

    导读:本文通过几道TMD面试题介绍一下如何使用窗口函数。涉及知识点有用于排序的窗口函数、用于用户分组查询的窗口函数、用于偏移分析的窗口函数,每种会通过一道面试题...

    华章科技

扫码关注云+社区

领取腾讯云代金券