gorm之CURD基本操作

  • 导言
    • 链接数据库
    • 创建数据库
    • 表名字的问题
    • 令人纠结的字符编码

导言

倒腾了一上午终于简简单单的完成了增删改查,查了很多帖子,总是和自己想要的不一样,希望自己的可以精辟一些

链接数据库

链接数据库的形式:
db, err := gorm.Open(“mysql”, “root:0402@(localhost)/test?charset=utf8&parseTime=True&loc=Local”)
if err != nil {
fmt.Println(“我出错啦”)
panic(err)
}`
首先需要明确的是Open(“mysql”, “用户名:密码@/数据库名?charset=字符集”),其中@之后的内容可写可不写,但是@一定要存在,@(localhost),@tcp(localhost),@tcp(localhost:3306)皆可。

创建数据库


生成的表的数据结构如下:

但是我声明了autoIncrement,并不会自增,emmm,auto_increment和auto increment都尝试过了。

gorm官方文档
对于gorm,会把错误通过Error参数返回,而Find()、Create()函数返回的是*gorm.db,需要注意:

表名字的问题

gorm默认是表名是复数形式,逻辑上很好理解。但是我一开始创建的表名叫"friend",但是下面这段代码,执行起来就是false:

if db.HasTable(&Friend{}){fmt.Println("该表不存在")}

后来查证发现,可以通过手动更改,使用单数名称的表的形式:

//设置单一表db.SingularTable(true)if !db.HasTable(&Friend{}){//当表不存在时,创建表,Set函数是这是表的各种属性db.Set("gorm:table_options", "CHARSET=utf8").AutoMigrate(&Friend{})}

令人纠结的字符编码

我用的是windows系统、maria db,众所周知是gbk格式,但是golang是utf-8格式,所以插进去的时候是乱码的。所以需要手动改一下数据库的配置文件,以我的数据库为例:在C:\Program Files\MariaDB 10.3\data的my.ini文件增加5、6、8、12,无非就是改变数据库之前的编码格式为utf8,之后重启数据库:

右键“此电脑”,选择管理,之后再选择服务,然后找到mysql,右键该条目进行重启服务:

之后重新进入数据库命令行界面,输入status,显示如下:

然后链接的时候,也指定了utf8,本以为万无一失:

但结果:

在命令行中还是乱码,这就很奇怪了,我就试了各种格式,各种改数据库配置文件,还是出错,后来在查看命令行的结构的时候发现了问题:

命令行是GBK的格式,所以显示UTF-8的内容必然是乱码的,但是你从程序里取数据据就可以了:

###参考:
不小心都被我关了,找不到参考文献了。。。

gorm的基本操作指南相关推荐

  1. 叛乱联机服务器未响应,叛乱沙漠风暴怎么开服 叛乱沙漠风暴开服操作指南详解 安装准备-游侠网...

    叛乱沙漠风暴怎么开服?游戏一款多人联机操作游戏,在开服前期要做好相应的准备工作,也就是设置一些选项,这里给大家带来了"xudong162"分享的叛乱沙漠风暴开服操作指南详解,详情一 ...

  2. oracle读书笔记之Oracle 11g R2 DBA操作指南(前三章)

    Oracle 11g R2 DBA操作指南是我学习的第一本讲述oracle数据库知识的书籍,在此记录下自己的学习笔记,对于书中的知识点本人通过实际操作进行验证. 1.Oracle数据库基础 1.1.关 ...

  3. tcp转串口_PROFIBUS DP与Modbus/TCP网络转换操作指南

    >>PROFIBUS DP转Modbus/TCP网关操作指南 摘要: 本文以NT100-RE-DP网关为例,实现Modbus/TCP Client与PROFIBUS DP设备间的通讯,从而 ...

  4. GitHub使用教程详解——官网操作指南(翻译)

    GitHub使用教程详解--官网操作指南(翻译) GitHub使用指南 原文地址:GitHub官网 示例项目:Hello World 十分钟轻松教学 在学习计算机语言编程的过程中创建Hello Wor ...

  5. Grails GORM查询总结

    GORM绝对是Grails框架的一大亮点.GORM基于Hibernate的ORM之上做二次封装,既有Hibernate强大的功能,又有使用简便的特点.本篇主要总结和类比在项目开发中用到的GORM查询方 ...

  6. 拨号到公司网络操作指南

    拨号到公司网络操作指南 转载于:https://blog.51cto.com/itlingm/399066

  7. 最快捷的Linux命令查询工具来了:「我该怎么做XX」,一句话自动返回操作指南...

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 无论你是Linux萌新用户还是老司机,使用命令行总会遇到不懂的问题. 遇到问题要么去论坛询问.谷歌搜索,要么查自带命令手册(RTFM),过 ...

  8. Go 语言编程 — gormigrate GORM 的数据库迁移助手

    目录 文章目录 目录 前言 gormigrate 核心结构体 实现分析 版本定义 InitSchema Migration 版本记录(历史) 版本升级和回退 前言 GORM v2 gormigrate ...

  9. Go 语言编程 — gorm 数据库版本迁移

    目录 文章目录 目录 前言 AutoMigrate 示例 Migrator 接口(DDL 操作方法) 表操作 列操作 约束操作 索引操作 数据库版本控制 参考文档 前言 本文示例为 GORM V2.0 ...

最新文章

  1. Java中几个常见的关键字
  2. bootstrap 冻结表格,冻结表头
  3. free查看可用缓存
  4. matlab 行 读取文件 跳过_用Matlab处理LAS点云(1)——LAS文件概述
  5. magento effects.js jquery.lazyload.js 冲突
  6. 第10-11讲 后端
  7. 【zz】Matlab 二值图像形态学函数 bwmorph
  8. javascript arguments(转)
  9. Java程序编译及打包
  10. CSDN-Markdown语法集锦
  11. Pygame 入门基本指南
  12. 民数记研读1——于宏洁
  13. JAVA删除pdf空白页_如何从iText中的PDF中删除空白页面
  14. VMware Workstation 与 Device/Credential Guard 不兼容解决方案
  15. css3实现0.5px边框、圆角渐变色边框+圆角渐变色背景
  16. Linux-Systemd服务配置文件详解
  17. 对角线用计算机怎么算,显示器对角线尺寸与厘米英寸分辨率在线转换关系
  18. Flink project java篇
  19. 直播平台源码,vue 写搜索效果
  20. 桥田快换产品在超声波焊接工艺的应用

热门文章

  1. 移动云计算和云计算有什么区别?
  2. 信号归一化功率_大功率集总参数衰减器的稳定性分析
  3. FIL WORLD算力众筹助推Filecoin生态落地
  4. Golang 打印耗时统计、纳秒级耗时统计(统计函数执行时间)
  5. UserDetails与UserDetailsService详解
  6. 实操 ----Mocap采集VIO数据集
  7. GraphicsLab Project之辉光(Glare,Glow)效果
  8. 蓝桥杯嵌入式RTC闹钟
  9. 【stm32 IAP-APP跳转学习记录】代码少一“点“,调试大半天
  10. GAN生成对抗网络论文翻译(二)