发布网友 发布时间:2022-04-27 12:27
共3个回答
懂视网 时间:2022-04-30 15:16
jdbc需要通过Connection数据库连接操作数据库。数据库连接的创建很昂贵,我们不能每执行一条sql语句就创建一个数据库连接,一般都是通过数据库连接池对连接进行管理,但mysql数据库存在8小时问题(如果数据库连接超过8小时没被使用,mysql自动断掉该连接),超过8小时后,从连接池中获取到的连接可能已经失效,从而导致异常出现,对此可以在连接池的配置文件中设置连接的有效时间等配置解决,尽管这样,连接池的作用是利大于弊。目前比较流行的连接池有dbcp、c3p0等。最近看了下阿里的开源项目druid,它不仅是一个数据库连接池,还提供了监控功能,它有以下优点:1、很方便的替换dbcp和c3p0连接池;2、性能比dbcp、c3p0等连接池好;3、采用filter-chain责任链模式,很方便的添加监控功能以及对数据库用户名和密码加密功能。
通过在web.xml中配置
<servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DruidStatView</servlet-name> <url-pattern>/druid/*</url-pattern> </servlet-mapping>
可以统计出sql语句的执行时间、执行次数等数据。在web.xml中配置
<filter> <filter-name>DruidWebStatFilter</filter-name> <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class> <init-param> <param-name>exclusions</param-name> <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value> </init-param> </filter> <filter-mapping> <filter-name>DruidWebStatFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
可以统计出每个请求的请求次数、请求时间等数据,同时在内置的监控页面weburi-detail.html中,查看JdbcPoolConnectionOpenCount和JdbcPoolConnectionCloseCount属性,如果不相等,表示连接有泄漏。具体的一些参数配置可参考https://github.com/alibaba/druid。
druid-带监控功能的数据库连接池
标签:
热心网友 时间:2022-04-30 12:24
Druid 0.1.18之后版本都发布到maven*仓库中,所以你只需要在项目的pom.xml中加上dependency就可以了。热心网友 时间:2022-04-30 13:42
Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。