关于dbcp连接数据库时的问题
注意:环境最好使用 jdk1.7、1.8
官方文档的标准写法是jdbc.xxxx=com.mysql.jdbc.Driver
修改成第二种写法就可以了,前面 加上 jdbc.xxx
1.修改前的写法
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=utf-8
username=root
password=123456
2.修改后的写法
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
下面是 SSM 的写法可以参考
databases.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
#可以允许的最小的空闲连接数 (默认:0)
minIdle=45
#可以允许的最大的空闲连接数 (默认:8)
maxIdle=50
#连接池在初始化连接时,第一次需要创建的个数 (默认值:0)
initialSize=5
#同时连接的最大连接数
maxActive=100
#最大的等待连接时间 (默认:-1)
maxWait=100
#是否开启无用连接的回收机制
removeAbandoned=true
#控制连接池超出配置时间后回收机制
removeAbandonedTimeout=180
applicationContext-mybatis.xml
<!-- 读取数据库配置文件 -->
<context:property-placeholder location="classpath:databases.properties"/>
<!--配置数据源(使用dbcp连接池)-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" scope="singleton">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!--连接池在初始化连接时,第一次需要创建的个数 (默认值:0)-->
<property name="initialSize" value="${initialSize}"/>
<!--同时连接的最大连接数-->
<property name="maxActive" value="${maxActive}"/>
<!--可以允许的最大的空闲连接数 (默认:8)-->
<property name="maxIdle" value="${maxIdle}"/>
<!--可以允许的最小的空闲连接数 (默认:0)-->
<property name="minIdle" value="${minIdle}"/>
<!--最大的等待连接时间 (默认:-1)-->
<property name="maxWait" value="${maxWait}"/>
<!--是否开启无用连接的回收机制-->
<property name="removeAbandoned" value="${removeAbandoned}"/>
<!--控制连接池超出配置时间后回收机制-->
<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}"/>
<!--SQL心跳包-->
<property name="testWhileIdle" value="true"/> <!--开启定时校验-->
<property name="testOnBorrow" value="false"/> <!--对拿到的连接是否校验-->
<property name="testOnReturn" value="false"/> <!--对于返回的连接是否校验-->
<property name="validationQuery" value="select 1"/> <!--定义校验所使用的SQL语句-->
<property name="timeBetweenEvictionRunsMillis" value="60000"/> <!--时间间隔-->
<property name="numTestsPerEvictionRun" value="${maxActive}"/> <!--定义每次校验的连接数-->
</bean>