gpt4 book ai didi

c# - .NET 与 MySqlConnection 和连接池

转载 作者:行者123 更新时间:2023-11-29 03:21:55 24 4
gpt4 key购买 nike

我是 .NET 和 Mysql Connection 的初学者。

为了避免对 .NET 的 Connection pool 产生误解,我想问一些我的问题。

我的代码很简单

class Program
{
static void Main(string[] args)
{
string connectionSetting = "Data Source=127.0.0.1;Database=my_table; User Id=root;Password=root" + ";charset=euckr";

MySqlConnection con = new MySqlConnection(connectionSetting);

con.Open();

MySqlCommand command = new MySqlCommand("insert into log(strLog) values('log1')", con);

command.ExecuteNonQuery();

con.Close();
}
}

我一直在尝试如何为 mysql-server 创建连接实例,答案是单例,但我在 StackOverflow 中发现了很多帖子,有些答案说不要共享 MySql Connection 实例和这就是我要做的。

我的问题是“谁在控制连接池?”

在上面的代码中,没有涉及控制连接池的代码,如GetPool、PutPool等调用。所以我认为数据库连接池是在 mysql-server 端控制的,.NET 端没有任何其他作业。我的理解正确吗?

如果我的想法是对的,我会使用下面的代码。

class dbcp
{
public const string m_ConnectionString = "Data Source=127.0.0.1;Database=my_table; User Id=root;Password=root" + ";charset=euckr";

public MySqlConnection connection;

public dbcp() { }

public void QueryLog(string log)
{
connection = new MySqlConnection(m_ConnectionString);
connection.Open();

string strSQL = "insert into log(strLog) values('log1')";
MySqlCommand cmd = new MySqlCommand(strSQL, connection);
cmd.ExecuteNonQuery();

connection.Close();
}
}

class SomeClassA
{
public dbcp dbHandler;
}

class SomeClassB
{
public dbcp dbHandler;
}

class Program
{
static void Main(string[] args)
{
string connectionSetting = "Data Source=127.0.0.1;Database=gw_ocpp_server; User Id=root;Password=root" + ";charset=euckr";

MySqlConnection con = new MySqlConnection(connectionSetting);

con.Open();

MySqlCommand command = new MySqlCommand("insert into log(strLog) values('log1')", con);

command.ExecuteNonQuery();

con.Close();
}
}

最佳答案

连接池是一种创建和管理连接池的技术:

这是关于 connection pooling 的附加信息

关于c# - .NET 与 MySqlConnection 和连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42990306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com