Golang |gorm框架认识和使用
在我们平时项目中,面对与日俱增的数据量,还有各种表与字段。仅仅是简单的CRUD增删改查的SQL语句也会相当庞杂。
而Gorm框架是一个经过长时间沉淀的“设计简洁,功能强大,自由拓展的全功能ORM”,在字节内部也广泛使用。作为一个强大的ORM框架,下面将结合课程内容,与常规的dataBase/sql的操作相对比,结合具体例子介绍一下。
Gorm介绍
什么是ORM
要说gorm,那必须说一下什么是ORM。
ORM框架全称是:Object Relational Mapping(对象关系映射)。它的作用是在编程中将面对对象的方法与数据库表的操作对应起来。简而言之就是用面向对象的操作来操作数据库,比如说用对象对应数据库中的表,而字段的CRUD则是对象的各种方法。
ORM有什么好处
ORM相比普通的database/sql操作上更符合编程习惯,直接操作对象而不是使用繁琐的sql语句。
Gorm框架操作
导入gorm包
gorm包:
|
|
gorm mysql数据库连接池:
|
|
1. 连接Mysql数据库
database/sql的操作:
|
|
gorm的操作:
|
|
可以看出来没什么差别,只是gorm和sql不同对象Open连接而已。
2. 数据库CRUD
database/sql中,对数据库的操作围绕着两个函数进行。
- Query():表示查询,将会返回数据库获取的一系列行结果。
- Exec():表示执行语句。
但无论是哪个函数,都要在函数里直接写sql语句进行操作,如:
|
|
可以看出,如果面对多个模型以及庞杂的增删查改,要写下许多sql语句。既不优雅也不方便。而且容易造成bug,sql语句的正确要在执行阶段才能知道,这给开发造成一定难度。
但gorm框架采用了面向对象的概念来操作数据库,克服了以上的缺点,也让代码保持统一的风格。
1. gorm自动建表
在gorm框架中,可以用 AutoMigrate() 函数自动建表,极其方便。函数会识别结构体的结构,根据结构体结构来生成对应的表结构。无需一个个输入参数,减少了错误的发生,简化操作流程。
!注意:gorm建表会自动在表名后添加’s’ ,比如说user的表名就叫users
|
|
2. gorm增删查改
- 增加
|
|
可以发现,相比于sql代码,使用Create方法减少了编码错误的可能。 2. 查询
|
|
- 更新
|
|
- 删除
|
|
总结
可以发现,gorm框架作为一个迭代多年的orm框架有很高的可用性和易用性,相比database/sql更加的方便,大大减少了代码错误的概率。其丰富的特性也让数据库的操作更灵活。