全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📝 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 框架的描述,哪一项是正确的?

A

GORM 是 Python 语言中的 ORM 框架

B

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

C

GORM 只能用于 MySQL 数据库

D

GORM 不支持事务操作

2
判断题

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

A

B

3
多选题

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

A

自动迁移数据库表结构

B

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

C

钩子函数(BeforeCreate、AfterFind 等)

D

完全替代原生 SQL 查询

4
单选题

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

A

gorm.Connect("mysql", dsn)

B

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

C

gorm.NewMySQL(dsn)

D

mysql.Connect(dsn)

5
填空题

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

6
多选题

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

A

MySQL

B

PostgreSQL

C

MongoDB

D

SQLite

7
判断题

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

A

B

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 模型定义的描述,哪些是正确的?

A

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

B

必须继承 gorm.Model 才能使用

C

可以使用 tag 配置字段映射

D

支持嵌套结构体嵌入

10
填空题

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

11
判断题

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

A

B

12
单选题

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

A

保持原样,如 UserAccount

B

蛇形命名并复数化,如 user_accounts

C

驼峰命名,如 userAccount

D

全小写,如 useraccount

13
多选题

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

A

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

B

可以使用 column tag 自定义列名

C

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

D

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

14
填空题

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

15
判断题

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

A

B

16
单选题

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

A

Create 方法返回主键 ID

B

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

C

需要再次查询数据库获取

D

Create 方法返回包含 ID 的 map

17
多选题

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

A

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

B

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

C

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

D

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

18
判断题

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

A

B

19
单选题

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

A

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

B

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

C

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

D

两者完全相同,没有区别

20
多选题

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

A

First

B

Take

C

Last

D

All

← 上一个专题 CRUD 基础操作专题
下一个专题 → 事务处理专题

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库