阿里druid学习,号称最好的数据库连接池
来源:互联网 发布:dnf面板数据怎么看 编辑:程序博客网 时间:2024/05/18 21:09
一:介绍
https://github.com/alibaba/druid/wiki/%E9%A6%96%E9%A1%B5
二:比较
druid是类似dbcp,c3p0的一个数据库连接池框架,性能比这两者好,同时自带监控页面,可以实时监控应用的连接池情况以及其中性能差的sql,方便我们找出应用中连接池方面的问题,多的就不说了,详细的介绍,github上都有
三:实战
我自己用druid结合mybatis写了一个demo,话不多说,上代码,o(╯□╰)o
先看spring配置
-
- <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
- <property name="url" value="${jdbc_url}" />
- <property name="username" value="${jdbc_user}"/>
- <property name="password" value="${jdbc_password}" />
- <property name="maxActive" value="${maxActive}" />
-
-
- <property name="proxyFilters">
- <list>
- <ref bean="stat-filter"/>
- </list>
- </property>
- </bean>
-
- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource" />
- </bean>
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <property name="dataSource" ref="dataSource"></property>
- <property name="mapperLocations" value="classpath:com/dingwang/mapping/*Mapper.xml"></property>
- </bean>
-
-
- <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
- <property name="slowSqlMillis" value="1000" />
- <property name="logSlowSql" value="true" />
- </bean>
web.xml配置- <servlet>
- <servlet-name>DruidStatView</servlet-name>
-
- <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
- <init-param>
-
- <param-name>allow</param-name>
- <param-value>128.242.127.1/24,128.242.128.1</param-value>
- </init-param>
- <init-param>
-
- <param-name>deny</param-name>
- <param-value>10.139.162.231</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>DruidStatView</servlet-name>
- <url-pattern>/druid/*</url-pattern>
- </servlet-mapping>
测试案例:-
-
-
-
-
- public class SqlBean {
- private static final Logger log = LoggerFactory.getLogger(SqlBean.class);
-
- @Resource
- private PolicyDTOMapper policyDAO;
-
- private Runnable runner;
-
- public void init() {
- runner = new Runnable() {
-
- public void run() {
- while (true) {
- PolicyDTO dto = new PolicyDTO();
- dto = SqlBean.this.policyDAO.selectByPrimaryKey(5l);
- log.info(dto.toString());
- try {
- Thread.sleep(2 * 1000);
- } catch (InterruptedException e) {
-
- e.printStackTrace();
- }
- }
- }
- };
-
- log.info("---------------start SqlBean-------------");
-
- Thread t = new Thread(runner);
- t.start();
-
- }
-
- }
四:效果图
0 0