package main

import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
) var db *gorm.DB
var err error type User struct {
ID int `json:id`
Name string `json:"name"`
Age int `json:"age"`
Sex int `json:"sex"`
} func main() { db,_ = gorm.Open("mysql","root:root@tcp(192.168.40.10:3306)/wang?charset=utf8&parseTime=True&loc=Local") if err != nil{
fmt.Println(err)
return
} else {
fmt.Println("connect success")
}
defer db.Close() db.AutoMigrate(&User{}) r := gin.Default() // 用户管理
r.GET("/",getUserList)
r.GET("/user/:id",getUserInfo)
r.GET("/users",getUserList)
r.POST("/user",addUser)
r.PUT("/user/:id",editUser)
r.DELETE("/user/:id",deleteUser) r.Run(":8080")
} // 用户信息
func getUserInfo(c *gin.Context) {
var user User
id := c.Params.ByName("id")
if err := db.Where("id = ?",id).First(&user).Error; err != nil{
c.AbortWithStatus(404)
fmt.Println(err)
} else {
c.JSON(200,user)
}
} // 用户列表
func getUserList(c *gin.Context) {
var users []User
if err := db.Find(&users).Error;err!=nil{
c.AbortWithStatus(404)
fmt.Println(err)
} else {
c.JSON(200,users)
} }
// 用户新增
func addUser(c *gin.Context) {
var user User
c.BindJSON(&user)
db.Create(&user)
c.JSON(200,user)
} // 用户编辑
func editUser(c *gin.Context) {
var user User
id := c.Params.ByName("id")
if err := db.Where("id = ?",id).First(&user).Error;err !=nil{
c.AbortWithStatus(404)
fmt.Println(err)
}
c.BindJSON(&user)
db.Save(&user)
c.JSON(200,user)
}
// 用户删除
func deleteUser(c *gin.Context) {
var user User
id := c.Params.ByName("id")
d := db.Where("id = ?",id).Delete(&user)
fmt.Println(d)
c.JSON(200,gin.H{"id #" + id: "deleted"})
}

  

gin+gorm 用户服务的更多相关文章

  1. [开源]Gin + GORM + Casbin+vue-element-admin 实现权限管理系统(golang)

    简析 基于 Gin + GORM + Casbin + vue-element-admin 实现的权限管理系统. 基于Casbin 实现RBAC权限管理. 前端实现: vue-element-admi ...

  2. 基于Gin+Gorm框架搭建MVC模式的Go语言后端系统

    文/朱季谦 环境准备:安装Gin与Gorm 本文搭建准备环境:Gin+Gorm+MySql. Gin是Go语言的一套WEB框架,在学习一种陌生语言的陌生框架,最好的方式,就是用我们熟悉的思维去学.作为 ...

  3. Go微服务实战 - 用户服务开发(gRPC+Protocol Buffer)

    概要 用户服务基本是每个互联网产品里必备的一个服务了,因为没有用户基本是什么也干不了.所以他的重要性不言而喻.本文主要介绍下如何开发一个用户微服务,以及他的详细开发流程. 目录 Go微服务实战 - 从 ...

  4. 使用go, gin, gorm编写一个简单的curd的api接口

    go 是一门非常灵活的语言,既具有静态语言的高性能,又有动态语言的开发速度快的优点,语法也比较简单,下面是通过简单的代码实现了一个简单的增删改查 api 接口 hello world 常规版 新建 d ...

  5. Casbin + Gin + Gorm 学习探索

    Casbin 是一个强大的,开源的访问控制框架,权限管理机制支持多种访问控制模型: 并且支持多种编程语言: 文档地址:https://casbin.org/docs/zh-CN/overview Gi ...

  6. gin+gorm

    在[环境变量]中添加如下[用户变量]/[系统变量]:GO111MODULE,值为on go mod init目录 在项目中新建文件main.go,并添加测试代码 package main import ...

  7. linux 查看信息-进程&用户&服务&程序

    进程 1.查看所有进程 2.实时显示进程状态 用户 1.查看活动用户 2.查看登录日志 3.查看系统所有用户 4.查看系统所有组 5.查看当前用户的计划任务 服务 1.列出所有系统服务 2.列出所有启 ...

  8. 微信绑定用户服务端代码-根据code获取openId然后绑定用户

    目录结构: isa.qa.core.weixin.message.resp包和isa.qa.core.weixin.util包中为微信绑定的工具类,就不一一贴出代码,详见附件,下载地址: http:/ ...

  9. go web开发(gin&gorm) 之DB配置及DAO的基本使用

    转载请注明出处: https://www.cnblogs.com/funnyzpc/p/9501376.html ```   我先闲扯下,前天(也就是2018年11月16号)的某个时候,忽然有人在QQ ...

随机推荐

  1. 《Redis内存数据库》Redis环境搭建

    前言 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多 ...

  2. TKE基于弹性网卡直连Pod的网络负载均衡

    前言 Kubernetes在集群接入层设计并提供了两种原生资源Service和Ingress,分别负责四层和七层的网络接入层配置. 传统的做法是创建Ingress或LoadBalancer类型的Ser ...

  3. 解决spark streaming集成kafka时只能读topic的其中一个分区数据的问题

    1. 问题描述 我创建了一个名称为myTest的topic,该topic有三个分区,在我的应用中spark streaming以direct方式连接kakfa,但是发现只能消费一个分区的数据,多次更换 ...

  4. JDK安装与基础环境变量配置 入门详解 - 精简归纳

    JDK安装与基础环境变量配置 JERRY_Z. ~ 2020 / 9 / 17 转载请注明出处!️ 目录 JDK安装与基础环境变量配置 一.下载 二.安装 (1).双击.exe文件 (2).全选安装工 ...

  5. python身体指数BMI

    问题需求 既要输出国际标准也要输出国内标准

  6. SpringBoot-02-原理初探之主启动类

    2. 原理初探 2.1 pom.xml 父依赖 主要依赖一个父项目,主要管理项目的资源过滤和插件 <parent> <groupId>org.springframework.b ...

  7. k8s Docker 安装

    k8s Docker 安装 一.运行环境 Centos 7.7 虚拟机内核为 3.10 基础组件版本: k8s.gcr.io/kube-apiserver:v1.16.0 k8s.gcr.io/kub ...

  8. 6.Exchanger-交换机

  9. Redis5设计与源码分析读后感(二)简单动态字符串SDS

    一.引言 学习之前先了解几个概念: SDS定义:简单动态字符串,Redis的基本数据结构之一,用于储存字符串和整型数据. 二进制安全:C语言中用"\0"表示字符串结束,如果字符串本 ...

  10. Redis中LIST列表的相关命令

    Redis中LIST列表的相关命令 添加 lpush 将一个或多个value插入到key的表头,如果存在多个value,那么各个value按从左到右的顺序依次插入表头 插入表头:意味着新插入的值在最前 ...