首页/ 学科题库/ gorm/ GORM 基础概念专题
gorm 专题精讲

GORM 基础概念专题

1 篇文章 20 道配套习题

GORM 基础概念专题

专题说明

本专题面向 GORM 初学者,系统讲解 GORM ORM 框架的核心概念。涵盖 GORM 简介与安装、数据库连接与配置、模型定义基础、命名约定与映射规则、创建记录和查询记录基础等知识点。通过 20 道精选题目和配套指南,帮助读者快速建立 GORM 知识体系。

学习目标

  1. 理解 GORM 的核心功能和适用场景
  2. 掌握数据库连接配置和 DSN 格式
  3. 熟练使用 gorm.Model 和自定义模型定义
  4. 理解命名规则与字段映射机制
  5. 掌握 Create、First、Take、Find 等基础 CRUD 操作

学习内容

本专题涵盖以下知识点:

  • GORM 简介与安装:框架特性、安装命令、核心功能
  • 数据库连接与配置:Open 方法、DSN 格式、Config 配置项
  • 模型定义基础:gorm.Model、TableName、结构体定义
  • 命名约定与映射规则:蛇形命名、复数化、NamingStrategy
  • 创建记录:Create 方法、批量插入、指针参数
  • 查询记录基础:First、Take、Last、Find 方法

学习建议

  1. 先搭建 GORM 开发环境,连接 MySQL 或 SQLite 进行实践
  2. 结合题目中的代码示例,动手定义模型并执行 CRUD 操作
  3. 重点关注 gorm.Model 的字段含义和命名规则的映射逻辑

配套习题(20 题)

参考答案在文末
判断题
1
判断题

在创建 GORM 数据库连接时,可以通过 gorm.Config 配置日志级别、干运行模式等参数。

A

对

B

错

2
判断题

在 Go 项目中安装 GORM 可以使用 go get -u gorm.io/gorm 命令。

A

对

B

错

3
判断题

使用 GORM 的 Create 方法时,必须传入结构体指针而不是值。

A

对

B

错

4
判断题

GORM 中结构体字段名 UserName 默认会映射到数据库列名 user_name。

A

对

B

错

5
判断题

GORM 模型可以通过实现 TableName() 方法来自定义数据库表名。

A

对

B

错

单选题
6
单选题

使用 GORM 的 Create 方法插入记录后,如何获取插入记录的主键 ID?

A

Create 方法返回主键 ID

B

插入后结构体对象的 ID 字段自动填充

C

需要再次查询数据库获取

D

Create 方法返回包含 ID 的 map

7
单选题

GORM 默认将结构体名称转换为哪种格式的表名?

A

保持原样,如 UserAccount

B

蛇形命名并复数化,如 user_accounts

C

驼峰命名,如 userAccount

D

全小写,如 useraccount

8
单选题

GORM 的 gorm.Model 结构体默认包含以下哪些字段?

A

ID, CreatedAt, UpdatedAt, DeletedAt

B

ID, Name, Email, Password

C

ID, CreatedAt, UpdatedAt, Version

D

ID, TenantID, CreatedAt, UpdatedAt

9
单选题

GORM 的 First 方法和 Take 方法的主要区别是什么?

A

First 按主键排序取第一条,Take 不指定排序

B

First 只能按条件查询,Take 只能按主键查询

C

First 返回多条记录,Take 返回单条记录

D

两者完全相同,没有区别

10
单选题

以下关于 GORM 框架的描述,哪一项是正确的?

A

GORM 是 Python 语言中的 ORM 框架

B

GORM 支持自动迁移和关联关系管理

C

GORM 只能用于 MySQL 数据库

D

GORM 不支持事务操作

11
单选题

使用 GORM 连接 MySQL 数据库,应该使用以下哪个方法?

A

gorm.Connect("mysql", dsn)

B

gorm.Open(mysql.Open(dsn), &gorm.Config{})

C

gorm.NewMySQL(dsn)

D

mysql.Connect(dsn)

多选题
12
多选题

以下关于 GORM 字段映射规则的描述,哪些是正确的?

A

字段名默认转换为蛇形命名的列名

B

可以使用 column tag 自定义列名

C

导出的字段(大写开头)才会被映射

D

私有字段(小写开头)也会被映射

13
多选题

GORM 官方支持以下哪些数据库?

A

MySQL

B

PostgreSQL

C

MongoDB

D

SQLite

14
多选题

以下哪些是 GORM 支持的插入数据方式?

A

db.Create(&user) 插入单条记录

B

db.Create(&users) 插入多条记录(批量)

C

db.CreateInBatches(&users, 100) 分批插入

D

db.Insert(&user) 插入单条记录

15
多选题

以下哪些是 GORM 框架的核心功能?

A

自动迁移数据库表结构

B

关联关系管理(一对一、一对多、多对多)

C

钩子函数(BeforeCreate、AfterFind 等)

D

完全替代原生 SQL 查询

16
多选题

以下关于 GORM 模型定义的描述,哪些是正确的?

A

可以使用 Go 结构体定义模型

B

必须继承 gorm.Model 才能使用

C

可以使用 tag 配置字段映射

D

支持嵌套结构体嵌入

17
多选题

以下哪些是 GORM 提供的查询单条记录的方法?

A

First

B

Take

C

Last

D

All

填空题
18
填空题

可以通过配置 db.NamingStrategy 自定义命名规则,其中可以设置表名前缀,可以禁用表名复数化。

19
填空题

连接 MySQL 数据库时,DSN(Data Source Name) 的标准格式为。

20
填空题

gorm.Model 中的 ID 字段类型是,DeletedAt 字段类型是。

参考答案
1.正确 2.正确 3.正确 4.正确 5.正确 6.B 7.B 8.A 9.A 10.B 11.B 12.A;B;C 13.A;B;D 14.A;B;C 15.A;B;C 16.A;C;D 17.A;B;C 18.TablePrefix;SingularTable 19.用户名:密码@tcp(主机:端口)/数据库名?参数 20.uint;gorm.DeletedAt
想在手机上刷这套专题的真题?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可解锁本专题全部配套练习与错题本。
了解产品 App
← 上一个专题 CRUD 基础操作专题 下一个专题 → 事务处理专题