我是 .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/