`

java数据库连接池

阅读更多

   近段时间有些同学做的项目出现了系统瘫痪的问题,如果少用户上线则没问题,但每当上千个用户进来一起用的时候系统就会崩溃了。只从发布了那个项目,一开始用则没问题,可是后来却慢慢地就用不了啦,  我个人认为原因主要是连接数据库或者程序不够优化的问题,当然关键不在于程序代码而应该是数据库连接方面。 以前我也听专家谈起过这个问题,都谈到数据库连接的问题。
   应用程序与数据库连接底层用的是TCP/UDP连接,每一次连接都是这样。这好比建立一座桥是建立数据库连接,搬东西过桥属于数据传输。我们可想建一座桥费用是很大的,而搬东西费用相对来说低很多,这里的费用就相当于所消耗的时间。我们在CRUD数据的时候反复地建立连接和关闭连接,这个是很费时间的。所以在有很多客户访问的系统里,我们一般采取的手段是用数据库连接池。其实这不是什么新鲜的技术,这只是一种思想来的。我们可以用Vector、ArrayList、LinkedList来装载建立起的数据库连接,就相当于一开始我们建好很多桥,供大家用。要Connection对象则从集合容器拿,不用的时候就放回该容器,这里所说的不用指的是关闭Connection。但是拿Connection的逻辑稍微复杂一点点,一个是同步问题,一个是最大连接数问题,一个是不够用问题,所以这要考虑的比较多点。不过其实也不难。我针对这些找到了一个网址http://www.javaeye.com/topic/26458  这里有一个小小的问题,我个人觉得好像没有写全代码,在DBConnectionPool这个类应该还有一个方法,那就是new 一个新的数据库连接,这个目的是为了在集合容器里面的所有连接都被用完了,不够用了,所以必定要新建立一个连接,而不能让别人在这等空的连接。
     这里用Javabean封装的类其实跟Hibernate封装的数据库连接池十有八九都很相似,只不多里面的机制比较好,它用资源文件(即xx.properties)导入数据库连接数,用一个可视化来操作数据库连接。可视化操作的数据就是存到这个资源文件来的。Hibernate的数据库连接池也是这样的。只不过是人性化了一点点。
    我觉得有很多客户访问的网站或者一些web管理软件,应该用连接池。希望对大家有帮助。大家多多支持!!!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics