|  | 
 
上一篇:javascrip{过滤}t:history.go()和History.back()的区别下一篇:C# 连接SQL数据库 常用连接字符串| 文章链接如下: 
 http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html
 
 1:SqlConnection是不是线程安全的呢?
 
 可以知道在多线程环境下使用一个Connection来执行Sql语句是不安全的。
 
 SqlConnection不是线程安全的,所以多线程必然会出现问题。
 其实.net是自动提供连接池管理的,只要连接字符串一样(必须是一模一样),就会在同一个池里面,open和close实际上都是从池中取一个连接和将连接放回池中,不会引起性能问题。所以每次打开连接后,在使用完毕之后,应该尽早的close,以便将连接归还池中供其它程序使用。
 
 
 
 2:为什么还是有人使用上面的那种写法来创建Connection呢?
 
 我认为他们可能会认为创建多个Connection比较耗时,而且多个Connection会占用内存,影响性能等等。。
 
 
 3:每次new SqlConnection是不是很占用内存和资源,影响性能?
 
 这个就是瞎认为,瞎操心.
 
 因为"创建多个Connection"并不一定就会创建新的多个数据库连接,数据库连接是宝贵资源,就MS SQL Server而言,其内部会对这个宝贵资源进行优化,连接是会被重用的.
 
 连接池是.net来提供的,在连接字符串中有一个Pooling属性,默认是true,也就是默认开启连接池,这个和sql server没关系,如果你连接字符串里面写Pooling=false,那么就没有连接池了,这个完全是.NET的优化。
 
 
 
 《探索多线程使用同一个数据库connection的后果》
 文章链接:http://www.th7.cn/Program/java/201503/415005.shtml
 
 总结:在多线程的环境中,在不对connection做线程安全处理的情况下,使用单个connection会引起事务的混乱....影响jdbc事务的使用。。。
 
 | 
 |