首页 > 数据库 >C#中通过连接池连接mysql数据库

C#中通过连接池连接mysql数据库

时间:2023-06-01 09:02:52浏览次数:46  
标签:C# builder connectionString connection mysql using 连接 连接池

      使用连接池可以提高C#程序连接MySQL数据库的性能,使得不必每次建立新的物理连接。

 

using System.Data;
using MySql.Data.MySqlClient;

namespace ConsoleApp1
{
    class Program
    {
        private const int MAX_POOL_SIZE = 100; // 设置最大连接数

        static void Main(string[] args)
        {
            string connectionString = "Server=myServerAddress;Port=3306;Database=myDataBase;Uid=myUsername;Pwd=myPassword;";
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                // 配置连接池和相关属性
                var builder = new MySqlConnectionStringBuilder(connectionString);
                builder.Pooling = true;
                builder.MinimumPoolSize = 5;
                builder.MaximumPoolSize = MAX_POOL_SIZE;
                connection.ConnectionString = builder.ConnectionString;

                // 打开连接并执行操作
                connection.Open();
                using (MySqlCommand command = new MySqlCommand("SELECT * FROM my_table", connection))
                {
                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            // 处理查询结果
                        }
                    }
                }
            }
        }
    }
}

  

       在这个代码段中,我们首先创建一个 string 类型的 connectionString 变量,它包含连接字符串信息。然后,我们将这个变量传递给一个新创建的 MySqlConnection 对象,该对象表示数据库连接。

接下来,我们使用 MySqlConnectionStringBuilder 对象设置连接池中的一些配置选项,如 PoolingMinimumPoolSizeMaximumPoolSize。接着,我们调用 Open() 方法打开连接,并使用 MySqlCommand 对象执行一个简单的查询操作。

      在使用完这个连接后,我们应该及时地关闭它,以便将其释放回连接池中。需要注意的是,在使用 using 块语法时,即使代码块异常退出,也可以确保自动关闭和释放资源。

标签:C#,builder,connectionString,connection,mysql,using,连接,连接池
From: https://www.cnblogs.com/yangxk666/p/17447913.html

相关文章

  • MyBatis之执行器(Excutor)
    MyBatis之执行器(Executor)前面的文章已经介绍了MyBatis的基本使用流程,但我们不能仅仅局限于使用,而是应该去横向扩展,往更深的方向研究。今天就先讲解一下MyBatis中的执行器Executor。我们在CURD的时候,每次都会去获取一个新的SqlSession对象,可以看出来这个接口主要定义类关于CRUD......
  • Computing the depth plane
    ......
  • Linux系统下C语言的编程技巧
    Linux系统能够为人们提供更加安全实用的效果,保证计算机系统能够稳定的运行。利用Linux系统下首先要进行C语言的编程,掌握编程的技巧能够更好的发挥计算机的作用。如何掌握Linux系统下计算机C语言的编程技巧是计算机发展的关键要素。本文对Linux系统下计算机C语言的编程技巧进行相......
  • cpp: Proxy Pattern
     /*****************************************************************//***\fileGoldWebSite.h*\brief代理模式ProxyPatternC++14*2023年5月31日涂聚文GeovinDuVisualStudio2022edit.*\authorgeovindu*\dateMay2023******************......
  • try catch捕获异常解析堆栈信息
    1packagekd.moya.zhgs.helper;2importjava.io.PrintWriter;3importjava.io.StringWriter;4/**5@ClassName:ErroHelper6@Description:TODO(异常解析)7@author:liul8@Date:2021/11/100010/15:08/星期三9/10publicclassErroHelper{11/*12......
  • Es中fuzzy和match_phrase的区别
    match_phrase:短语模糊查询match用于分词模糊查询,比如说我们查询”一共多少个词语”,但我们需要查询“共多“的时候,如果没有指定分词器,使用默认分词的话,会将共多分成”共”,”多”进行模糊查询,但不符合我们的业务需求,那么我们就需要使用ik分词器配置词典”共多” 但是,这样的话......
  • linux crypt()函数使用总结
    linuxcrypt()函数使用总结 原型:char*crypt(constchar*key,constchar*salt);标准说明:crypt()算法会接受一个最长可达8字符的密钥(即key),并施以数据加密算法(DES)的一种变体。salt参数指向一个两个字符的字符串,用来改变DES算法。该函数返回一个指针,指向长度13个字符......
  • LeetCode/叶值的最小代价生成树
    给你一个正整数数组 arr,考虑所有满足以下条件的二叉树:每个节点都有0个或是2个子节点。数组 arr 中的值与树的中序遍历中每个叶节点的值一一对应。每个非叶节点的值等于其左子树和右子树中叶节点的最大值的乘积。在所有这样的二叉树中,返回每个非叶节点的值的最小可能总......
  • 5.5. Java并发工具类(如CountDownLatch、CyclicBarrier等)
    5.5.1CountDownLatchCountDownLatch是一个同步辅助类,它允许一个或多个线程等待,直到其他线程完成一组操作。CountDownLatch有一个计数器,当计数器减为0时,等待的线程将被唤醒。计数器只能减少,不能增加。示例:使用CountDownLatch等待所有线程完成任务假设我们有一个任务需要三个子......
  • Canvas API初步学习
    1.字体 在canvas中最常见的字体表现形式有填充字体和漏空字体。   漏空字体用方法:strokeText(Text,left,top,[maxlength]);  填充字体用方法:fillText(Text,left,top,[maxlength]);上面的两个方法的最后一个参数是可选的,四个参数的含义分为是:需绘制的字符串,绘制到画布中时......