「go商城」gin+gorm实现CRUD

Python023

「go商城」gin+gorm实现CRUD,第1张

ORM-Object-Relationl Mapping,即对象关系映射,这里的Relationl指的是关系型数据库

它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了

GORM就是go语言实现的一个ORM库

特点:

增加(Create)

检索(Retrieve)

更新(Update)

删除(Delete)

如果模型中有 DeletedAt 字段,它将自动拥有软删除的能力!当执行删除操作时,数据并不会永久的从数据库中删除,而是将 DeletedAt 的值更新为当前时间。

具体的使用可查看gorm 官方文档

在项目中我们定义一个全局的GVA_DB,方便使用时调用

后续我们在需要查询数据库时便可直接通过global.GVA_DB使用

比如创建商品信息:

我们先通过查询分类是否存在,然后再创建商品

通过gorm的链式操作可以很方便的进行crud操作

分页查询是项目中经常使用到的功能,当指定条件查询的数据量过大时,如果我们将数据一次性返回,会对数据库造成较大的负荷,同时降低接口的性能,通常我们会使用分页查询的方式让数据进行分段展示,从而保障接口的性能。在gorm中我们实用Offset,和Count来实现分页

我们通过前端的传递过来的分页数据进行查询

该商城作为gin的学习项目,没有很复杂的逻辑,所有业务逻辑均通过Mysql实现。包括后面将要介绍的登录态,也是如此。

所有代码已上传github,有兴趣的可以访问https://github.com/newbee-ltd/newbee-mall-api-go/,如果有更好的建议也欢迎提交issure,pr

go目前开发的大型产品还很少。

目前我所知道的有:

beego,国内开发者开发的web框架

SudoChina,golang 开发的CMS

Monsti 也是一个CMS

其他的都在GIT上有一些开源项目。

毕竟很年轻的语言,大型成熟的产品还很少。不过我们公司已经在用golang开发公司内部使用的软件。同时也在使用golang开发一些WEB项目。

PHP:是一种通用开源脚本语言。语法吸收了C语言、Java的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。Java:是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,电子商务大型网站与平台是电商平台使用的最好的开发语言。C#:是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。并定于在微软职业开发者论坛上登台亮相。C#是微软公司研究员的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM是直接集成的,而且它是微软公司.NETwindows网络框架的主角。