高手指点:数据库的连接字符串封装类是静态化好还是实例化好?
本帖最后由 angkor506 于 2013-06-29 17:30:14 编辑 希望高手指点:封装数据库的连接字符串是静态化好还是实例化好?哪个运行的效率高而且能把应用池尽快释放处理? 现在是实例化的:
namespace WebConn
{
#region 数据库操作类
public class B_SqlConn : IDisposable
{
public SqlConnection Conn = null;
public string strConn = System.Configuration.ConfigurationManager.AppSettings["StrConn"];
/// <summary>
/// 打开数据库连接
/// </summary>
public void Open()
{
Conn = new SqlConnection(strConn);
if (Conn.State == ConnectionState.Closed)
{
Conn.Open();
}
else if (Conn.State == ConnectionState.Broken)
{
Conn.Close();
Conn.Open();
}
}
/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
Conn = new SqlConnection(strConn);
if (Conn.State == ConnectionState.Open)//判断连接的状态是否打开
{
Conn.Close();
}
}
/// <summary>
/// 释放资源
/// </summary>
public void Dispose()
{
Conn = new SqlConnection(strConn);
if (Conn != null)// 确认连接是否已经关闭
{
Conn.Dispose();
Conn = null;
}
}
}
#endregion
引用连接的时候:using WebConn;
B_SqlConn Exsql = new B_SqlConn()
Exsql.Open();
......
Exsql.Close();
Exsql.Dispose();
这样是不是最好的数据库封住类,还是转变为:static 静态类的好?
用的时候直接 B_SqlConn.Open();
.....
B_SqlConn.Close();
B_SqlConn.Dispose();
那种是最正确的?性能最好的?这几年我一直用的都是实例化调用的方式,但不知道是不是最好的,因为应用池总感觉人多访问会出现超时,虽然这个不是最主要影响,但都是想从最优化性能的角度去改善代码 数据库 类 实例
[解决办法]
个人觉得用静态的比较好,一般数据库的操作都是比较频繁的,让数据操作类使用一个单例模式