- 浏览: 663200 次
- 性别:
- 来自: 安徽
文章分类
- 全部博客 (252)
- Html/Div+CSS (12)
- Js/Jquery (34)
- Flex (2)
- Ajax (3)
- Java (35)
- C# (15)
- Spring (16)
- Hibernate (13)
- Struts2 (12)
- Struts1 (7)
- DWR (1)
- iBatis/myBatis (9)
- Tag(JSTL、EL) (1)
- Android (44)
- SQL (7)
- SEO (7)
- Exception (3)
- Tool (10)
- Other (3)
- WebService (9)
- Apache (7)
- Ext (0)
- Utils (12)
- thinking in programme (2)
- Hadoop (0)
- ActiveMQ (0)
- HTML5/CSS3 (0)
- WPF (1)
- NodeJs (1)
- 设计模式 (0)
- 程序人生 (1)
- 随笔 (1)
- Linux (1)
- Load Balance (0)
最新评论
-
drinkjava2:
太复杂了而且不通用,利用ThreadLocal可完美解决这一问 ...
JDBC的多条件动态查询 -
u013107014:
multipartRequest.getFiles(" ...
多文件上传 by MultipartFile and Multiple -
liyys:
可惜没讲你mysql数据库的表的设计
iBatis入门 -
Mapple_leave:
效果还是挺不错的,谢谢了。
中文简体与繁体的转换 -
arcpad:
JS禁用浏览器退格键
在 Java 的 JDBC 中会有一个连接池的概念,那么我们来看看常用的连接池有哪些: proxool 、 dbcp 、 c3p0 ,其优劣各有优点不想评价,自己在项目中以 proxool 为主;
那么连接池具体是做什么的呢?其基本思想就是为数据连接建立一个“缓冲池”,而后预先在这个缓冲池中放入一定数量的连接,当需要建立数据库连接的时候,只需要从缓冲池中取出一个即可,使用完之后再放回缓冲池中去。在这个过程中服务启动要相对慢点,但是这相对用户访问时是的请求处理速度来说,替换的是值得的。这里我们还可以设置连接池的最大连接数来防止系统无尽的与数据库建立连接,更重要的是我们可以通过连接池的管理机制监视数据库的连接数量和使用情况,为系统开发、测试及性能调整提供依据;
Ok ,废话少说,以 proxool 为例,来看看 JDBC 中如何加入连接池。
1、 首先要导入“ commons-logging-1.1.jar ”、“ proxool-0.9.1.jar ”、“ proxool-cglib.jar ”;
2、 在 web.xml 中加入一下配置:
<servlet> <servlet-name>ServletConfigurator</servlet-name> <servlet-class> org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class> <init-param> <param-name>xmlFile</param-name> <param-value>WEB-INF/proxool.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>proxoolAdmin</servlet-name> <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>proxoolAdmin</servlet-name> <url-pattern>/proxool_admin</url-pattern> </servlet-mapping>
说明:
· <load-on-startup>1</load-on-startup> :这里表示启动是加载;
· proxoolAdmin : proxool 提供的管理监控工具,可查看当前数据库连接情况。如果运行不成功,请删除本行(用 http://localhost/web-name/Admin 访问得到监控结果);
·还有一些其他的属性,但只有特定条件下才会使用,这里就一一列举了。
3、 在 WEB-INF 添加 proxool.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?> <something-else-entirely> <proxool> <alias>db_onlineproject</alias> <driver-url>jdbc:mysql://localhost:3306/db_onlineproject</driver-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <driver-properties> <property name="user" value="root"/> <property name="password" value="123"/> </driver-properties> <maximum-connection-count>100</maximum-connection-count> <minimum-connection-count>10</minimum-connection-count> <trace>true</trace> <house-keeping-test-sql>select 0</house-keeping-test-sql> </proxool> </something-else-entirely>
说明:
· alias :别名
· maximum-connection-count :最大的数据库连接数 .
· minimum-connection-count :最小的数据库连接数 .
· house-keeping-test-sql :这里的 select 0 是为了可以在任意数据库中都可以正常执行,测试连接
Other :
house-keeping-sleep-time: house keeper 保留线程处于睡眠状态的最长时间 ,house keeper 的职责就是检查各个连接的状态 , 并判断是否需要销毁或者创建,这个的默认值是 30 秒。 house-keeping-test-sql: 如果发现了空闲的数据库连接 .house keeper 将会用这个语句来测试 . 这个语句最好非常快的被执行 . 如果没有定义 , 测试过程将会被忽略。 maximum-active-time: 如果 housekeeper 检测到某个线程的活动时间大于这个数值 . 它将会杀掉这个线程 . 所以确认一下你的服务器的带宽 . 然后定一个合适的值 . 默认是 5 分钟。经常有些人或许会遇到正在执行的程序忽然拒绝连接,莫明其妙的程序假死,这些都与这个参数的设置有关,我们大部分数据库操作都会在 5 分钟之内完成,可是偏偏有些可能 5 分钟还完成不了,而这个值如果按照默认值的话,连接池就会不管你到底有没有执行完,都会强行关闭数据库连接,所以这个值你可要小心设置哦:) maximum-connection-count: 最大的数据库连接数 . 一般的大应用设置 30 就足够了。 maximum-connection-lifetime: 一个线程的最大寿命 . minimum-connection-count: 最小的数据库连接数,一般最好事先初始化一部分连接这样,对于初次连接数据库的应用效率比较高,推荐设置 5 - 10 prototype-count: 连接池中可用的连接数量 . 如果当前的连接池中的连接少于这个数值 . 新的连接将被建立 ( 假设没有超过最大可用数 ). 例如 . 我们有 3 个活动连接 2 个可用连接 , 而我们的 prototype-count 是 4, 那么数据库连接池将试图建立另外 2 个连接 . 这和 minimum-connection-count 不同 . minimum-connection-count 把活动的连接也计算在内 .prototype-count 是 spare connections 的数量 . trace: 如果为 true, 那么每个被执行的 SQL 语句将会在执行期被 log 记录 (DEBUG LEVEL). 你也可以注册一个 ConnectionListener ( 参看 ProxoolFacade) 得到这些信息 . |
4、调用
package com.theone.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * 建立数据库连接类 * @author xudongwang * */ public class DbUtil { public static Connection getConn() throws SQLException { return DriverManager.getConnection("proxool.db_onlineproject"); } }
发表评论
-
log4j xml配置详解
2014-06-18 10:37 1098<?xml version="1.0&qu ... -
test
2013-07-29 09:16 0private static CacheImpl insta ... -
多文件上传 by MultipartFile and Multiple
2012-12-03 09:13 14297最近的一个项目中,需要用到 ... -
布局框架-SiteMesh
2012-11-30 08:57 2545最近在一个项目中使用 ... -
Servlet
2012-12-07 08:36 1497一、认识 Servlet : ... -
忆Java String
2012-11-15 08:38 1222平时 .NET 写多了, Java ... -
Eclipse中右键快速定位文件资源的工具
2012-11-09 08:43 1951当你开发.NET项目后,使用VS习惯了再来使用Java和Ecl ... -
Java中MessageFormat对象实现格式化字符串输出,类似C#中的string.format方法
2012-09-29 11:39 3624平时.NET做多了,再做Java时,总会进行一些比较,比如说J ... -
byte[]与InputStream互转
2012-09-29 11:39 1529InputStream转byte[] private ... -
统一中英文长度问题
2012-07-20 00:17 1893最近因为在做一个项目要求很多都是英文,所以这就涉及到在页 ... -
Java中Process的waitFor()阻塞问题
2012-07-21 01:00 8845在做视频转换时,调用外部的 exe 去进行一些视频 ... -
Tomcat注册成系统服务
2012-07-17 00:00 1513为了部署项目后不出现黑色的 doc 命令框,所以很 ... -
urlrewrite实现伪静态化
2012-07-25 00:41 3174产生背景 静态网页与动态网页比较: ... -
Java中java.util.Date时间和java.sql.Date时间的相互转化
2012-01-30 22:49 2908刚刚写用 JS 禁用退格键时( http ... -
使用BeanUtils类简化request和resultset转换
2012-01-21 20:23 2888当提交表单时,如果没有使用Struts等框架的话,你的代 ... -
JDBC的多条件动态查询
2012-01-19 11:05 7100前面我已经提到了现在的项目无非就是列表里的分页加多条件查 ... -
JDBC分页
2012-01-19 10:15 5473不知道大家做项目做到最后有什么感觉没有,其实大家做来做去 ... -
Java农历(阴历)工具类
2012-01-20 11:30 2301在真实的项目开发中会可能会遇到项目需要对阴历即我们所说的农历节 ... -
Eclipse中java项目引用dll库的路径设置(System.loadLibrary()调用Dll路径问题)
2012-01-16 14:13 4201右击项目名|选择属性properties|在左边列表内选择“J ... -
联系人导出(msn、邮箱)
2012-01-16 11:48 8308在项目开发中,不知道大家有没有涉及到导出邮箱或msn的联系人( ...
相关推荐
对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接的配置,实现数据库连接池技术。某一应用最大可用数据库连接数的限制,避免某一应用独占所有数据库资源。 在较为完备的数据库连接池实现中,可根据...
连接池案例
连接池连接池连接池连接池连接池
传统的HttpURLConnection并不支持连接池,如果要实现连接池的机制,还需要自己来管理连接对象。对于网络请求这种底层相对复杂的操作,个人以为如果有可用的其他方案,也没有必要自己去管理连接对象。 除了...
* 数据库连接池特点: * 获取连接时不需要了解连接的名字,连接池内部维护连接的名字 * 支持多线程,保证获取到的连接一定是没有被其他线程正在使用 * 按需创建连接,可以创建多个连接,可以控制连接的数量 * 连接...
使用JDK1.8、SpringBoot2.2.10.RELEASE、lombok1.18.8、guava23.0、hutool5.3.10、commons-pool2 2.7.0、tika1.22等实现多Ftp连接池实现,通过守护线程实现连接池内连接可用性校验,配置最大、最小连接个数防止Ftp...
ADO.NET链接对象(SqlConnection或者OracleConnection)默认情况都开启连接池(平时编程时可能会忽略)。当我们调用Close或者Dispose方法时,实际并不断开连接,而是把连接放回连接池,再次使用时候重连接池中取得...
v1.3改进了清理线程可能出现的减少连接池中链接而不计数的问题。 v1.2处理了oracle环境下由于服务器关闭休眠链接造成的连接池循环检测进程异常退出的情况,改为当循环周期大于服务器关闭休眠链接间隔时,后台打印...
经过几天的琢磨,去看了csdn上一位大牛的数据库的连接池实现方案,从中感悟很多,感谢这位大神。 让我才能有信心去坚持下去。也不知道写的好不好··不好的话,大家指出。但是我是努力去做了,这一个过程,很享受,...
封装抽取了一个kafka生产者的连接池,能很好的用池的方式对kafka生产者连接点进行有效的管理
C# 数据库连接池 C# 数据库连接池 C# 数据库连接池 C# 数据库连接池
这个文档详细讲述了mysql数据库连接池的配置以及数据库连接池的工作原理。
C#高效数据库连接池源码
Tomcat6配置连接池很全面的东东
代码中包含okhhtp中连接池的设计,包含连接对象的添加,连接对象何时被移除。
这是用连接池技术管理连接oracle数据库的工具类代码,如果想连接MySQL,直接修改配置文件即可。
RabbitMQ连接池+SpringBoot实现。通过连接池实现将高效的管理RabbitMQ的Connection,并与springboot进行整合,实现消息发送,获取队列列表等功能。基于此可以进行更多功能的扩充。
在网上找了好久没有现成的ftp连接池jar包,自己花了一些时间实现了一个简单的连接池,用了一段时间稳定性还可以。
Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP 在配置连接池时需要注意的有三点: 一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在...
java 数据库 连接池驱动.rar java 数据库 连接池驱动.rar java 数据库 连接池驱动.rar