golang使用gorm操作mysql1

1.mysql连接配置

package daoimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm""gorm.io/gorm/logger"
)var DB *gorm.DB// 连接数据库,启动服务的时候,init方法就会执行
func init() {username := "root"         //账号password := "123456" //密码host := "127.0.0.1"        //数据库地址,可以是IP或者域名port := 3306               //数据库端口Dbname := "ry"        //数据库名dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local", username, password, host, port, Dbname)db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{Logger: logger.Default.LogMode(logger.Info),})if err != nil {panic("连接数据库失败,原因:" + err.Error())}DB = db
}

2.数据库操作 业务类

package daoimport "log"type User struct {//主键//ID int32//通过在字段后面的标签来定义golang字段和表字段的关系//例如:`gorm:"column:username"` 标签说明含义是:Mysql表的列名(字段名)为 usernameUserName   string `gorm:"column:user_name"`NickName   string `gorm:"column:nick_name"`//CreateTime int64  `gorm:"column:create_time"` //创建时间,时间戳
}// 映射表名
func (user User) TableName() string {return "sys_user"
}func SaveUser(user *User) {//新增err := DB.Create(user).Errorif err != nil {log.Println("新增用户失败,原因:", err)}
}func GetUserById(id string) User {var user Usererr := DB.Where("id = ?", id).First(&user).Errorif err != nil {log.Println("查询用户失败,原因:", err)}return user
}

3.接口请求

package controllerimport ("gin/dao""github.com/gin-gonic/gin"//"time"
)func SaveUser(context *gin.Context)  {//创建用户的实例user := &dao.User{UserName:   "苏冬雪",NickName:   "123456",//CreateTime: time.Now().UnixMilli(),}//执行保存dao.SaveUser(user)context.JSON(200, user)
}

4.接口请求

5.数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2815200.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

stm32学习笔记:ADC

1 ADC简介 ADC的作用ADC就是一个电压表,把引脚的电压值测出来,放在一个变量里 DAC的作用信号发生器、音频解码芯片 ADC的两个关键参数: 1、分辨率,一般用多少位来表示,12位AD值,它的表示范围就是0~2^12-1&…

Modern C++ std::any为何要求Tp可拷贝构造?

小问题也会影响设计的思路,某个问题或某种case的探讨有助于理解设计的初衷。 声明:以下_Tp/Tp都是指要放入std::any的对象的类型。 它要求_Tp is_copy_constructible, 仅仅是因为有很多函数的实现调用了Tp的拷贝构造函数吗?比如说上节提到的初…

pikachu之xss获取键盘记录

前备知识 跨域 跨域(Cross-Origin)是指在互联网中,浏览器为了保护用户信息安全而实施的一种安全策略——同源策略(Same-Origin Policy),即浏览器禁止一个域上的文档或者脚本(如通过JavaScript发…

Rocky Linux安装部署Elasticsearch(ELK日志服务器)

一、Elasticsearch的简介 Elasticsearch是一个强大的开源搜索和分析引擎,可用于实时处理和查询大量数据。它具有高性能、可扩展性和分布式特性,支持全文搜索、聚合分析、地理空间搜索等功能,是构建实时应用和大规模数据分析平台的首选工具。 …

(十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目

前言 本节内容是一套关于微服务项目在docker环境中使用jenkins流水线部署的完整方案,在开始本节内容之前,我们需要提前安装好docker环境,以及docker本地镜像仓库docker harbor,同时安装好SonarQube用于代码验证,具体的安装步骤可参考作者的往期博客内容。 正文 在源码仓…

【MySQL】学习和总结标量子查询

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-kLo6jykc7AcEVEQk {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

爱普生为姿态和振动控制开发理想的IMU

- M-G370PDS0改善了短期噪声,扩展了型号阵容,使产品选择范围更广- 精工爱普生公司(“爱普生”,TSE: 6724)已经开发出M-G370PDS0样品,这是一种配备高性能六轴传感器的新型惯性测量单元(IMU)1。新产品计划于2022年春季批量生产。 爱…

MarkDown实用技巧:MarkDown中如何实现换行?

MarkDown实用技巧:MarkDown中如何实现换行? 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望…

虚拟机安装+固定ip地址

一、下载CentOS 二、安装CentOS 1、打开你的VMware Workstation Pro,并点击“创建新的虚拟机” 2、点选典型(推荐)(T),并点击“下一步” 3、点选稍后安装操作系统(S),并点击“下一步” 4、点选Linux,并点击“下一步” 6、点击“…

flutter 一键打出不同包名、应用名、版本名、签名、应用图标、版本号的安装包

1. build.gradle 文件中配置不同的应用信息 flavorDimensions "app"productFlavors {app1 {//配置包名manifestPlaceholders [str: "releaseStr", package_name: "com.example.demo1"]applicationId "com.example.demo1"versionCode …

【SpringCloudAlibaba系列--OpenFeign组件】OpenFeign的配置、使用与测试以及OpenFeign的负载均衡

步骤一 准备两个服务,provider和consumer 本文使用kotlin语言 provider是服务的提供者,由provider连接数据库 RestController RequiredArgsConstructor RequestMapping("/provider/depart") class DepartController(private val departServ…

【GameFramework框架内置模块】6、实体(Entity)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录: https://blog.csdn.net/q7…

备战蓝桥杯————k个一组反转单链表

k个反转单链表,顾名思义就是k个节点为一组进行反转,这是一道困难的题目,如何解答,可以在我们前面的反转链表中得到思路。 如何 K 个一组反转单链表 题目描述 给你链表的头节点 head ,每 k 个节点一组进行翻转&#xf…

Spring AOP -- 面相切面编程

AOP是Spring框架的核心之一,AOP是一种思想,它的实现方法有很多,有Spring AOP,也有AspectJ、CGLIB等。我们熟知的拦截器其实就是AOP思想的一种实现方式。 AOP是一种思想,是对某一类事情的集中处理。 Spring AOP的实现…

【MySQL】MySQL复合查询--多表查询自连接子查询 - 副本

文章目录 1.基本查询回顾2.多表查询3.自连接4.子查询 4.1单行子查询4.2多行子查询4.3多列子查询4.4在from子句中使用子查询4.5合并查询 4.5.1 union4.5.2 union all 1.基本查询回顾 表的内容如下: mysql> select * from emp; ----------------------------…

IAudioManager.cpp源码解读

IAudioManager.cpp源码如下: 源码路径:https://cs.android.com/android/platform/superproject/main//main:frameworks/native/services/audiomanager/IAudioManager.cpp;drc84410fbd18148d422d3581201c67f1a72a6658c4;l147?hlzh-cn /** Copyright (C)…

JavaWeb——005 请求响应 分层解耦(Postman、三层架构、IOC、DI、注解)

SpringBootWeb请求响应 这里写目录标题 SpringBootWeb请求响应前言1. 请求1.1 Postman1.1.1 介绍1.1.2 安装 1.2 简单参数1.2.1 原始方式1.2.2 SpringBoot方式1.2.3 参数名不一致 1.3 实体参数1.3.1 简单实体对象1.3.2 复杂实体对象 1.4 数组集合参数1.4.1 数组1.4.2 集合 1.5 …

Linux线程(二)----- 线程控制

目录 前言 一、线程资源区 1.1 线程私有资源 1.2 线程共享资源 1.3 原生线程库 二、线程控制接口 2.1 线程创建 2.1.1 创建一批线程 2.2 线程等待 2.3 终止线程 2.4 线程实战 2.5 其他接口 2.5.1 关闭线程 2.5.2 获取线程ID 2.5.3 线程分离 三、深入理解线程 …

WinCC如何与三菱Q系列PLC进行以太网通讯

本文主要描述人机界面WinCC如何与三菱Q系列PLC进行以太网通讯,主要介绍了CPU自带以太网口和扩展以太网模块两种情况以及分别使用TCP、UDP两种协议进行通讯组态步骤及其注意事项。 一、 说明 WinCC从V7.0 SP2版本开始增加了三菱以太网驱动程序,支持和三…

IPD(集成产品开发)—核心思想

企业发展到一定阶段就会遇到管理瓶颈,IPD流程是一种高度结构化的产品开发流程,它集成了业界很多优秀的产品开发方法论,像搭积木一样的组合成一种非常有效的流程。如果我们能根据企业的规模和行业特点,对全流程的IPD进行合适的裁剪…