标签:
jdbc需要通过Connection数据库连接操作数据库。数据库连接的创建很昂贵,我们不能每执行一条sql语句就创建一个数据库连接,一般都是通过数据库连接池对连接进行管理,但mysql数据库存在8小时问题(如果数据库连接超过8小时没被使用,mysql自动断掉该连接),超过8小时后,从连接池中获取到的连接可能已经失效,从而导致异常出现,对此可以在连接池的配置文件中设置连接的有效时间等配置解决,尽管这样,连接池的作用是利大于弊。目前比较流行的连接池有dbcp、c3p0等。最近看了下阿里的开源项目druid,它不仅是一个数据库连接池,还提供了监控功能,它有以下优点:1、很方便的替换dbcp和c3p0连接池;2、性能比dbcp、c3p0等连接池好;3、采用filter-chain责任链模式,很方便的添加监控功能以及对数据库用户名和密码加密功能。
通过在web.xml中配置
DruidStatView
com.alibaba.druid.support.http.StatViewServlet
DruidStatView
/druid/*
可以统计出sql语句的执行时间、执行次数等数据。在web.xml中配置
DruidWebStatFilter
com.alibaba.druid.support.http.WebStatFilter
exclusions
*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
DruidWebStatFilter
/*
可以统计出每个请求的请求次数、请求时间等数据,同时在内置的监控页面weburi-detail.html中,查看JdbcPoolConnectionOpenCount和JdbcPoolConnectionCloseCount属性,如果不相等,表示连接有泄漏。具体的一些参数配置可参考https://github.com/alibaba/druid。
标签: