频道栏目
首页 > 资讯 > 其他综合 > 正文

Mybatis框架的连接池xml配置代码

17-10-24        来源:[db:作者]  
收藏   我要投稿

啥也不说,先上代码:

xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration  
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
    "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
    <environments default="mysql_development">
        <!-- 连接环境信息 -->
        <environment id="mysql_development">
            <!-- mysql使用什么事物管理方式 -->
            <transactionManager type="JDBC">
                <property name="" value="" />
            </transactionManager>

            <!-- mybatis使用连接池方式来获取连接对象 -->
            <dataSource type="POOLED">
                <!-- 配置数据库连接信息 -->
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://your_mysql_url:3306/your_db_name?useUnicode=true&amp;characterEncoding=utf-8" />
                <property name="username" value="root" />
                <property name="password" value="your_password" />

                <property name="poolMaximumIdleConnections" value="0"/>
                <property name="poolMaximumActiveConnections" value="1000"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
      <package name="bean.map"/>
    </mappers>
</configuration>

说明:上面都是很显然的,有几个地方注意

1、url中useUnicode=true&characterEncoding=utf-8 注意里面的转义字符&也就是&,否则会出错的

2、后面两个参数poolMaximumIdleConnections,和poolMaximumActiveConnections,需要并发控制的时候必须调整这俩参数

3、poolMaximumActiveConnections是最大的活动连接数,活动连接,就是正在与数据库交互的连接,默认是10

4、poolMaximumIdleConnections是空闲连接数,就是没有处理请求的连接,默认是5

5、具体可以参考mybatis的源码org.apache.ibatis.datasource.pooled.PooledDataSource.

PooledDataSource就是连接池的实现类。可以看到里面定义了几个参数,其中就包括poolMaximumActiveConnections和poolMaximumIdleConnections,找到pushConnection方法,这个方法里会判断当前空闲连接数和poolMaximumIdleConnections的大小,如果小于poolMaximumIdleConnections,会new PooledConnection并放进队列中,这就导致一个问题,当所有的连接被占满后,Mybatis为了保持一定的空闲连接,会不断获取新的连接,然后这些新连接被占用后,就会再去new PooledConnection,如果一直这样new下去,结果就会超过了mysql设置的最大连接数max_connections,然后数据库返回错误:too many connections。

相关TAG标签
上一篇:Hbase数据库的简单命令介绍
下一篇:在mysql存储过程中,repeat循环游标的基本步骤
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站