iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >共享数据库连接
  • 839
分享到

共享数据库连接

2024-04-05 00:04:24 839人浏览 泡泡鱼
摘要

一分耕耘,一分收获!既然都打开这篇《共享数据库连接》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新

一分耕耘,一分收获!既然都打开这篇《共享数据库连接》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新golang相关的内容,希望对大家都有所帮助!

问题内容

首先我读了这篇文章: https://www.alexedwards.net/blog/organising-database-access

基本上几乎所有文章都假设将数据库连接存储在存储库结构中。

但是假设有这种情况: 我们有2个存储库 还有一些把柄。 在这个句柄中,我们必须从第一个存储库中读取一些模型。 然后创建另一个模型并插入到第二个存储库中。 我们必须在事务中做。

如果我们在每个存储库中存储数据库连接: 在第一个存储库中我们开始事务,然后我们不能在第二个存储库中使用此事务。

我想到了这些解决方案: 1.

func (self *handles) somehandle(ctx context.context) {
   dbconnection := self.acquireconnectionfrompool();
   dbconnection.begintransaction();
   // skip errors checking
   model := self.repositoryone.get(dbconnection);
   // create new model
   self.repositorytwo.save(dbconnection, newmodel);
   dbconnection.commit();
}
  • func (self *handles) SomeHandle(ctx context.Context) {
       dbConnection := self.acquireConnectionFromPool();
       dbConnection.beginTransaction();
       ctxDb := context.WithValue(ctx, "db", dbConnection)
       // skip errors checking
       model := self.repositoryOne.get(ctxDb);
       // create new model
       self.repositoryTwo.save(ctxDb, newModel);
       dbConnection.commit();
    }

    哪种解决方案更好?


    正确答案


    sql.DB 不仅仅是到数据库的连接。它通过根据需要创建/池化连接来抽象出您的连接处理。在存储库中的任何地方重复使用一个 sql.DB 是安全的。这个结论可以从docs中得出:

    上面的定义足以得出这样的结论:sql.DB 不是一个连接,而是一个接口,它通过抽象驱动程序/连接实现来提供对数据库的通用访问。

    终于介绍完啦!小伙伴们,这篇关于《共享数据库连接》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~编程网公众号也会发布Golang相关知识,快来关注吧!

    您可能感兴趣的文档:

    --结束END--

    本文标题: 共享数据库连接

    本文链接: https://www.lsjlt.com/news/596387.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 共享数据库连接
      一分耕耘,一分收获!既然都打开这篇《共享数据库连接》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新...
      99+
      2024-04-05
    • MacBookairm1怎么连接共享文件
      今天小编给大家分享一下MacBookairm1怎么连接共享文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
      99+
      2022-12-27
      macbookair
    • python怎么连接数据库_python连接数据库教程
      1、首先python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:。 2、然后可以访问Python数据库接口及API查看详细的支持数据库列表。不同的数据库你需要下载不同...
      99+
      2024-04-02
    • win11如何连接共享打印机
      这篇文章主要介绍“win11如何连接共享打印机”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win11如何连接共享打印机”文章能帮助大家解决问题。首先点击任务栏下方的开始然后进入设置开启“控制面板”...
      99+
      2023-07-01
    • win10共享打印机如何连接
      要共享打印机在Windows 10上连接,您可以按照以下步骤操作:1. 首先,确保要共享的打印机已连接到同一网络中的一台计算机上,并...
      99+
      2023-09-05
      win10
    • idea连接数据库
      数据库连接mysql 第一步:我的背景条件 下载并配置好mysql、idea。idea存在了tomcat9.0、maven。 第二步:database——>data Source——>mysql ...
      99+
      2023-09-24
      intellij-idea 数据库 mysql
    • JDBC 连接数据库
      一、通过Driver接口直接连接 public Connection getConnectionByDriver() throws Exception{  ...
      99+
      2024-04-02
    • win10怎么连接共享打印机
      要连接共享打印机,您可以按照以下步骤操作:1. 确保您的电脑和共享打印机位于同一网络中。2. 在您的电脑上,打开“设置”应用程序。3...
      99+
      2023-09-01
      win10
    • pod连接数据库
      问题描述:pdo连接数据库后,查询数据库中的汉子全部转变为文号(?),文件格式是utf-8,数据库的表,字段全部设置为utf8,。处理方法,在连接数据库的时候new PDO($num1,$num2,$num...
      99+
      2024-04-02
    • openGauss数据库共享存储特性概述
      目录版本介绍继承功能:新增功能:主备共享存储特性简介客户价值特性描述特性约束openGauss 3.1.1是openGauss 5.0.0 release版本的Preview版本,希望广大社区伙伴和开发者基于此版本进行场...
      99+
      2023-02-18
      openGauss数据库共享存储 openGauss共享存储 openGauss数据库存储
    • Mac 与 Windows 通过网线“直连”共享数据
      文章目录 1. 问题提出2. 必要条件3. 参数设定3.1 网卡参数设定3.2 创建专用的共享用户3.3 配置用户权限3.4 共享参数配置 4. SMB 共享配置5. 效果测试参考文献 ...
      99+
      2023-09-02
      macos windows 5G
    • 数据库连接池的艺术:让数据库访问成为一件享受!
      数据库连接池是一种重要的技术,可以显著提升应用程序与数据库之间的交互效率。通过使用连接池,应用程序可以重用先前建立的数据库连接,从而避免重复创建和销毁连接的开销。 连接池如何工作? 连接池是一个由预先配置的数据库连接组成的集合。当应用程...
      99+
      2024-03-03
      数据库连接池、连接池管理、数据库优化、应用程序性能
    • Python 连接 Oracle数据库
      1.环境设置[root@oracle ~]# cat /etc/redhat-release CentOS release 6.9 (Final)[root@oracle ~]# python -VPython 2.6.6版本:Oracle...
      99+
      2023-01-31
      数据库 Python Oracle
    • python3连接MySQL数据库
      环境:python 3.6.1 + mysql 5.1 Python3 支持用 pymysql 模块来链接数据库 1、pymysql安装 windows下:pip install pymysql 直接安装 官方文档:http://...
      99+
      2023-01-31
      数据库 MySQL
    • Java连接mysql数据库
      文章目录 一、Java连接mysql数据库1.1 流程1.2 一个测试连接的java程序 二、优化:创建一个工具类2.1 存在的问题2.2 创建配置文件和工具类2.3 测试使用工具类进行CRUD操作 三、SQL注入问题3.1...
      99+
      2023-08-16
      数据库 mysql java jdbc sql注入
    • idea连接MySQL数据库
      文章目录 前言一、idea创建连接MySQL操作步骤 二、配置连接参数操作步骤 总结 前言 提示:idea连接数据库前,先需要查看自己数据库安装、配置是否完成: 1.打开mysql命令控制台 2.输入密码,到如下页面...
      99+
      2023-08-17
      mysql intellij-idea 数据库
    • Node.js 连接 mysql 数据库
      目录 一、安装驱动 二、连接数据库 1、数据库连接的配置信息 数据库连接参数说明 2、封装 mysql 的执行语句 3、后端路由文件  三、数据库操作( CURD ) 1、查询数据 2、插入数据 3、更新数据 4、删除数据 4、获取受影响的...
      99+
      2023-09-09
      mysql 数据库 node.js
    • python连接postgresql数据库
      python连接postgresql数据库 postgresql是常用的关系型数据库,并且postgresql目前还保持着全部开源的状态,所以我们今天就一起来学习一下,如何用python连接postg...
      99+
      2023-09-04
      数据库 postgresql python
    • DBUtils数据库连接池
      使用数据库连接池技术,可以重复使用多个数据库连接,避免每次执行数据库操作都建立连接和关闭连接,也避免了大型应用同时占用多个数据库连接。 以连接mysql为例 import pymysql from DBUtils.PooledDB i...
      99+
      2023-01-31
      数据库 连接池 DBUtils
    • python连接MySQL数据库
      模块功能:connect()方法 * connect()方法用于连接数据库,返回一个数据库连接对象。如果要连接一个位于host.remote.com服务器上名为fourm的MySQL数据库,连接串可以这样写: ...
      99+
      2023-01-31
      数据库 python MySQL
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作