近段时间有些同学做的项目出现了系统瘫痪的问题,如果少用户上线则没问题,但每当上千个用户进来一起用的时候系统就会崩溃了。只从发布了那个项目,一开始用则没问题,可是后来却慢慢地就用不了啦, 我个人认为原因主要是连接数据库或者程序不够优化的问题,当然关键不在于程序代码而应该是数据库连接方面。
以前我也听专家谈起过这个问题,都谈到数据库连接的问题。
应用程序与数据库连接底层用的是TCP/UDP连接,每一次连接都是这样。这好比建立一座桥是建立数据库连接,搬东西过桥属于数据传输。我们可想建一座桥费用是很大的,而搬东西费用相对来说低很多,这里的费用就相当于所消耗的时间。我们在CRUD数据的时候反复地建立连接和关闭连接,这个是很费时间的。所以在有很多客户访问的系统里,我们一般采取的手段是用数据库连接池。其实这不是什么新鲜的技术,这只是一种思想来的。我们可以用Vector、ArrayList、LinkedList来装载建立起的数据库连接,就相当于一开始我们建好很多桥,供大家用。要Connection对象则从集合容器拿,不用的时候就放回该容器,这里所说的不用指的是关闭Connection。但是拿Connection的逻辑稍微复杂一点点,一个是同步问题,一个是最大连接数问题,一个是不够用问题,所以这要考虑的比较多点。不过其实也不难。我针对这些找到了一个网址http://www.javaeye.com/topic/26458 这里有一个小小的问题,我个人觉得好像没有写全代码,在DBConnectionPool这个类应该还有一个方法,那就是new
一个新的数据库连接,这个目的是为了在集合容器里面的所有连接都被用完了,不够用了,所以必定要新建立一个连接,而不能让别人在这等空的连接。
这里用Javabean封装的类其实跟Hibernate封装的数据库连接池十有八九都很相似,只不多里面的机制比较好,它用资源文件(即xx.properties)导入数据库连接数,用一个可视化来操作数据库连接。可视化操作的数据就是存到这个资源文件来的。Hibernate的数据库连接池也是这样的。只不过是人性化了一点点。
我觉得有很多客户访问的网站或者一些web管理软件,应该用连接池。希望对大家有帮助。大家多多支持!!!
分享到:
相关推荐
Java数据库连接池是Java开发中一个非常重要的技术,它主要用于管理数据库连接,提高数据库操作的效率和性能。在Java应用程序中,频繁地创建和关闭数据库连接会导致大量的系统资源浪费,而连接池则可以复用已建立的...
本篇文章将深入解析一个自定义的JAVA数据库连接池类,帮助开发者更好地理解和运用这一关键技术。 首先,连接池的基本思想是预先创建一定数量的数据库连接,并存储在一个集合(如Vector)中,供应用程序按需获取和...
Java数据库连接池的原理与应用 在Java开发领域,数据库连接池(Database Connection Pool,简称DBCP)是一种提高数据库访问性能、降低资源消耗的重要技术。它通过预先建立一定数量的数据库连接,存储在一个“池”中...
总的来说,Java数据库连接池如C3P0和Druid,以及Spring的JdbcTemplate,都是为了优化数据库操作而设计的工具。它们各自有其特点和优势,开发者可以根据项目需求选择合适的技术。在使用过程中,充分理解和合理配置...
Java数据库连接池是Java应用程序管理数据库连接的一种高效方式。它避免了每次需要访问数据库时创建新的连接,而是预先创建一定数量的连接并保存在池中,当程序需要时可以从池中获取,用完后归还,从而提高了系统性能...
Java数据库连接池C3P0是一种常用的开源数据库连接管理工具,它通过提供连接池服务,提高了应用程序处理数据库连接的效率,降低了系统资源的消耗。在Java应用中,尤其是在服务器端,数据库连接的创建和关闭是相对耗时...
本项目提供了一个轻量级的Java数据库连接池实现,旨在简化开发过程,提高应用性能并降低资源消耗。下面将详细介绍这个轻量级Java数据库连接池的设计理念、工作原理以及如何使用。 1. **设计理念** 轻量级数据库...
Java数据库连接池是一种重要的技术,它在Java应用程序与数据库交互时起到了关键的作用。数据库连接池在多线程、高并发的环境下尤其重要,因为它能够有效地管理和重用数据库连接,从而提高系统性能,减少资源消耗。 ...
Java数据库连接池驱动是Java应用程序在访问数据库时用于优化资源管理的一种技术。它提供了一种在多个数据库操作之间重用数据库连接的方式,从而避免了频繁创建和关闭连接带来的性能开销。连接池的核心思想是池化资源...