当前位置: 技术问答>java相关
谁能指导我一下,连接池是什么东西呀??看了书,看不太明白
来源: 互联网 发布时间:2015-09-24
本文导语: 好像有poolconection,managepool的类 能给我这个初学者解释一下么? | 一般情况下,在使用开发基于数据库的WEB程序时,传统的模式基本是按以下步骤: 1. 在主程序(如Servlet、Beans)中建立...
好像有poolconection,managepool的类
能给我这个初学者解释一下么?
能给我这个初学者解释一下么?
|
一般情况下,在使用开发基于数据库的WEB程序时,传统的模式基本是按以下步骤:
1. 在主程序(如Servlet、Beans)中建立数据库连接。
2. 进行SQL操作,取出数据。
3. 断开数据库连接。
使用这种模式开发,存在很多问题。首先,我们要为每一次WEB请求(例如察看某一篇文章的内容)建立一次数据库连接,对于一次或几次操作来讲,或许你觉察不到系统的开销,但是,对于WEB程序来讲,即使在某一较短的时间段内,其操作请求数也远远不是一两次,而是数十上百次(想想全世界的网友都有可能在您的网页上查找资料),在这种情况下,系统开销是相当大的。事实上,在一个基于数据库的WEB系统中,建立数据库连接的操作将是系统中代价最大的操作之一。很多时候,可能您的网站速度瓶颈就在于此。
其次,使用传统的模式,你必须去管理每一个连接,确保他们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄露,最终我们将不得不重启数据库。
针对以上问题,我们首先想到可以采用一个全局的Connection对象,创建后就不关闭,以后程序一直使用它,这样就不存在每次创建、关闭连接的问题了。但是,同一个连接使用次数过多,将会导致连接的不稳定,进而会导致WEB SERVER的频频重启。故而,这种方法也不可取。实际上,我们可以使用连接池技术来解决上述问题。
连接池最基本的思想就是预先建立一些连接放置于内存对象中以备使用.当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都有连接池自身来管理。
1. 在主程序(如Servlet、Beans)中建立数据库连接。
2. 进行SQL操作,取出数据。
3. 断开数据库连接。
使用这种模式开发,存在很多问题。首先,我们要为每一次WEB请求(例如察看某一篇文章的内容)建立一次数据库连接,对于一次或几次操作来讲,或许你觉察不到系统的开销,但是,对于WEB程序来讲,即使在某一较短的时间段内,其操作请求数也远远不是一两次,而是数十上百次(想想全世界的网友都有可能在您的网页上查找资料),在这种情况下,系统开销是相当大的。事实上,在一个基于数据库的WEB系统中,建立数据库连接的操作将是系统中代价最大的操作之一。很多时候,可能您的网站速度瓶颈就在于此。
其次,使用传统的模式,你必须去管理每一个连接,确保他们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄露,最终我们将不得不重启数据库。
针对以上问题,我们首先想到可以采用一个全局的Connection对象,创建后就不关闭,以后程序一直使用它,这样就不存在每次创建、关闭连接的问题了。但是,同一个连接使用次数过多,将会导致连接的不稳定,进而会导致WEB SERVER的频频重启。故而,这种方法也不可取。实际上,我们可以使用连接池技术来解决上述问题。
连接池最基本的思想就是预先建立一些连接放置于内存对象中以备使用.当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都有连接池自身来管理。
|
看看这些:
http://www.java-cn.net/technology/technology_detail.jsp?id=465
http://www.java-cn.net/technology/technology_detail.jsp?id=1185
http://www.java-cn.net/technology/technology_detail.jsp?id=1246
http://www.cn-java.com/index_news_kind.php?title=????/?????&kind=13&group=01
http://www.java-cn.net/technology/technologybrow.jsp
http://www.java-cn.net/technology/technology_detail.jsp?id=465
http://www.java-cn.net/technology/technology_detail.jsp?id=1185
http://www.java-cn.net/technology/technology_detail.jsp?id=1246
http://www.cn-java.com/index_news_kind.php?title=????/?????&kind=13&group=01
http://www.java-cn.net/technology/technologybrow.jsp
|
具体原理就是建立一个数据库的连接既耗时有耗资源,所以,用一个连接池预先和数据库做好连接,客户端访问数据库的时候,到连接池批发一个,用完了,然后放回去,以便其他程序调用
这样通过共享来节省资源
这样通过共享来节省资源
|
用一个连接池预先和数据库做好连接
这个句子,预先和数据库做好连接,是什么时候做的?
这个问题不需要调用者考虑,上诉的poolconection,managepool的类
来完成这个问题,你只需要调用即可
这个句子,预先和数据库做好连接,是什么时候做的?
这个问题不需要调用者考虑,上诉的poolconection,managepool的类
来完成这个问题,你只需要调用即可