Spring中数据库连接池需要注意的问题
来源:互联网 发布:键位修改软件 编辑:程序博客网 时间:2024/05/17 18:47
1、问题描述
使用Spring+mybatis+c3p0数据源,并且使用properties文件提供相关配置参数。
产生的问题:
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
2、产生问题可能的原因
①驱动相关参数配置书写不正确。特别需要注意的是不能带有多余的空格
②使用如下方式引入properties文件
<context:property-placeholder location="classpath:jdbc.properties" />
这种引入properties文件的方式使用很普遍,但是也可能因为路径等等原因导致无法正常的引入。即使在集成开发 环境中可以通过Ctrl+鼠标左键进行文件跳转,但并不代表引入一定正确。
3、正确的引入properties文件
需要通过Spring提供的类来引入properties文件,这样才能保证properties文件的正确引入
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:jdbc.properties</value>
</property>
</bean>
通过这种方式引入后,上述问题就顺利解决了。
4、在Spring配置文件中直接书写驱动等相关参数,转义字符需要注意
配置中如果直接使用&也可以能会引起无法获取底层数据库连接的问题。
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/seckill?useUnicode=true&characterEncoding=utf8"></property>
<property name="user" value="root"></property>
<property name="password" value="1"></property>
5、数据库连接常见的一些其他问题
(1)com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: 'utf8mb4'
该问题最可能的原因就是驱动的版本问题,可以试着换一个低版本。
(2)java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0
原因是你MySQL的驱动生成时的JAVAC版本比你现在的JRE运行环境高造成的, 解决方法通常是换个版本低些的MySQL驱动包。
这两类问题在使用Maven去管理项目的时候出现的比较多,因为maven中一般会使用较新的版本,避免此类问题最好的方法就是指明你使用的具体版本,项目中长期使用的版本应该是最好的。
总结:上述问题和解决方案都是在实际中遇到并实践过的。每个人问题可能存在区别,解决方法也可能不同。
0 0
- Spring中数据库连接池需要注意的问题
- JDBC数据库连接需要注意的问题
- Spring发布事件需要注意的问题
- 使用Spring AOP 需要注意的问题
- Spring使用中需要注意的地方
- 开发网站中需要注意的问题
- IE 中Javascript需要注意的问题
- 使用JavaScript 中需要注意的问题
- Css中需要注意的一些问题
- jQuery中需要注意的细节问题
- 代码风格中需要注意的问题
- 现在工作中需要注意的问题
- zend_framework中需要注意的两个问题
- modelsim_alter 中 testbanch 需要注意的问题
- Qt中需要注意的基本问题
- 测试项目中需要注意的问题
- hadoop中需要注意的问题
- 流失分析中需要注意的问题
- 常见Python运行错误
- 前端性能优化
- android app唤醒手机qq,发起即时对话
- Leetcode #541 Reverse String II
- Binary Tree Maximum Path Sum
- Spring中数据库连接池需要注意的问题
- 关闭全部动态加载的子集菜单
- Firefox新打开标签页不断刷新无法输入地址
- jQuery学习笔记
- 开发地址
- 怎么做二手车成交可能性预测
- Java跨平台原理
- Expected resource of type drawable [ResourceType]
- 欢迎使用CSDN-markdown编辑器