我正在尝试在.net中为自己创建一个Database对象。构造函数接受一个连接字符串,并使用MySQL Connector打开与MySQL数据库的连接。它具有以下功能:
function executeNonQuery(cmd as String) as Boolean
function getOneResultQuery(query as String) as String
function getDataReader(query as String) as MySQLDataReader
当任务需要db时,它会实例化数据库对象并调用其必要的命令。完成数据库后,它会调用disconnect()函数。
这是否利用了MySQL连接池?当每个任务连接和断开数据库时(有时一次打开多个连接,有时一个连接打开,有时没有打开连接)连接是否存储在池中?是否必须永久保持一个连接才能启用连接池?
这个数据库对象是一个不错的做法还是我过度了?
答案 0 :(得分:1)
我不是MySql的专家,但我知道连接池在SQL Server中是如何工作的,所以我用Google搜索它以查看我的怀疑是否正确。
根据this post,从.Net到MySql的连接池类似,如果你使用相同的连接字符串(我相信这意味着完全相同 - 区分大小写等)连接池将自动实现通过框架。
如果是这种情况那么你就过度思考了,并且没有必要保持开放的连接。 (在大多数情况下,这只是一个不好的做法,要求麻烦)。
基于对.Net运行时如何为您提取详细信息的一般理解,我对此答案充满信心,将其作为答案发布,而不是评论。