Mybatis框架的连接池配置
生活随笔
收集整理的這篇文章主要介紹了
Mybatis框架的连接池配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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&characterEncoding=utf-8" /><property name="username" value="root" /><property name="password" value="your_password" /><property name="poolMaximumIdleConnections" value="0"/><property name="poolMaximumActiveConnections" value="1000"/><property name="poolPingQuery" value="SELECT 1 FROM DUAL" /> <property name="poolPingEnabled" value="true" /></dataSource></environment></environments><mappers><package name="bean.map"/></mappers>
</configuration>
說明:上面都是很顯然的,有幾個地方注意
url中useUnicode=true&characterEncoding=utf-8 注意里面的轉義字符&也就是&,否則會出錯的 后面兩個參數poolMaximumIdleConnections,和poolMaximumActiveConnections,需要并發控制的時候必須調整這倆參數 poolMaximumActiveConnections是最大的活動連接數,活動連接,就是正在與數據庫交互的連接,默認是10 poolMaximumIdleConnections是空閑連接數,就是沒有處理請求的連接,默認是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。
總結
以上是生活随笔為你收集整理的Mybatis框架的连接池配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis中连接池介绍
- 下一篇: 2021编程推荐台式电脑配置?