我初学者正在使用.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中找到了很多帖子,有些答案说Don不共享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();
}
}