1. 概述
使用sql.DB
可以让我们在Go中访问数据库,你可以使用它去创建语句和事务,执行查询、获取结果。
您应该知道的第一件事是sql.DB
不是数据库连接。它并没有映射到任何特定的数据库软件中的“数据库”或“表结构”的概念。它是数据库在 Go 代码中存在的一种抽象概念,它可以像本地文件一样变化,我们可以通过网络连接访问,也可以在内存和进程内访问。
通常sql.DB
在会后台为您执行一些重要任务:
- 它通过驱动程序打开和关闭与实际基础数据库的连接。
- 它根据需要管理连接池,这可能是前面提到的各种各样的事情。
sql.DB
抽象旨在使您不必担心如何管理对基础数据存储的并发访问。当您使用连接来执行任务时,该连接会被标记为使用中,然后在不再使用时返回到可用池中。其后果之一是,如果您无法将连接释放回池,则可能导致sql.DB
打开大量连接,这可能会耗尽资源(连接太多,打开文件句柄过多,缺少可用的网络端口等)。稍后我们将详细讨论。
创建sql.DB
后,您可以使用它来查询它代表的数据库以及创建语句和事务。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。