每日一得--Spring 应用程序经常获取不到数据库连接,平时进行数据库操作也很慢

本文探讨了一个Spring应用程序频繁出现数据库连接超时的问题,并详细解释了问题的原因在于使用了不支持连接池的DriverManagerDataSource。通过更换为Apache DBCP的数据源并进行相应的配置调整后,成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:发现刚刚发布的spring应用程序经常出现获取不到数据库连接的timeout 错误。仔细看代码后发现,有段代码需要连续发起两个query,常常是发第二个query时出现数据库连接获取不到的错误

原因:仔细读了spring文档,发现由于使用的datasource是Spring提供的DriverManagerDataSource,而该dataSource是不支持Connection Pool的,所以性能很低,Spring也是推荐不要采用这个dataSource。改用Apache的DBCP dataSource后解决该问题。


修改配置:

bean id="dataSource" 
        class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<context:property-placeholder location="jdbc.properties"/>

参考:http://static.springsource.org/spring/docs/current/spring-framework-reference/html/jdbc.html#jdbc-DataSourceTransactionManager
NoteExpress不仅是一款文献管理工具,它还具备高效的引用插入功能,能够与Microsoft Word无缝集成。以下是详细的操作步骤: 参考资源链接:[NoteExpress文献管理软件教程:从新手到高手](https://wenku.youkuaiyun.com/doc/6chtgeq9q0?spm=1055.2569.3001.10343) **第一步:创建数据库** 打开NoteExpress,进入【数据库】菜单,选择【新建数据库】来创建一个新的文献库。这里可以设定数据库的名称和存储位置,推荐放在非系统盘以防止数据丢失,并可以开启云服务同步功能,方便多设备操作。 **第二步:导入文献** 通过点击【导入】按钮,可以将已有的文献信息导入到NoteExpress中。支持的导入格式包括但不限于EndNote, Zotero等其他文献管理软件的格式。导入完成后,NoteExpress会自动识别并解析文献元数据,并将其存储到相应的数据库文件中。 **第三步:在Word中插入引用** 安装NoteExpress提供的Word插件后,你可以在写作过程中直接插入文献。打开Word文档,点击NoteExpress插件中的【插入引文】按钮,选择需要引用的文献,并选择合适的引用样式。 **第四步:引用格式调整** 插入引用后,可以右键点击引用,选择【更新引文和参考书目】来调整引用格式。NoteExpress支持多种引文样式,包括APA、MLA、Chicago等,能够满足不同学科的写作需求。 **第五步:自动更新参考文献** 在写作过程中,如果对文献信息进行了修改,如增加或删除引文,NoteExpress会自动更新Word文档中的参考文献列表,确保引用的一致性和准确性。 通过以上步骤,NoteExpress不仅可以帮助你高效管理文献,还能在写作中快速准确地引用文献,极大提高科研工作的效率和质量。 参考资源链接:[NoteExpress文献管理软件教程:从新手到高手](https://wenku.youkuaiyun.com/doc/6chtgeq9q0?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值