写个程序,里面有建立数据库连接的部分,很慢,想使用连接池,同时使用单态类将数据库连接对象做为一个公共实例调用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data .OracleClient ;
namespace test_singleton
{
sealed class MySingleton
{
private MySingleton(){}
//public static readonly MySingleton orcn = new MySingleton();
private static OracleConnection orcn = null;
public static OracleConnection getConnection()
{
if (orcn == null)
{
orcn = new OracleConnection("user id=ABC;password=ABC;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.203)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=myDB)));");
}
return orcn;
}//=
public static void Main(string[] args)
{
OracleConnection[] addr = new OracleConnection[20];
for (int i = 0; i < 20; i++)
{
addr[i] = MySingleton.getConnection();
Console.WriteLine("orcn 的当前状态 ---" + MySingleton.getConnection().State);
Console.WriteLine(" ");
}
Console.WriteLine("两个对象是否相等?"+(addr[0]==addr[1]));
Console.WriteLine("两个对象是否相等?" + (addr[2] == addr[5]));
Console.ReadLine();
}
}
}
//
注意,这个时候不需要dispose来关闭连接,只需close即可,否则单态类就没有意义了。
程序执行快了很多。