使用Spring和DBCP以及MySQL设置连接时区
我的环境
- Java 5
- 春季 2.5.5
- DBCP DataSource (org.apache.commons.dbcp.BasicDataSource)
- 我的SQL
类似帖子
链接
我的问题
- 我需要在我的连接上设置时区,目的是在处理TIMESTAMP列时防止转换。
我的想法/研究
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="URL" value="${database.url}" />
<property name="user" value="${database.username}" />
<property name="password" value="${database.passwd}" />
<property name="connectionCachingEnabled" value="true"/>
<property name="sessionTimeZone" value="GMT-3"/>
</bean>
寻求帮助区域:)
- 但这行不通!!
- 我在这里想要的是一个简单的方法,优先使用Spring在jdbc连接上配置时区。
提前感谢任何帮助/提示/建议/知识分享
溶液:
我的解决方案是基于这篇文章中收集的提示!谢谢大家!
(...)
@Override
public Connection getConnection() {
Connection conn = null;
Statement statement = null;
try {
conn = super.getConnection();
statement = conn.createStatement();
statement.execute("SET time_zone = \'" + timezone+"\'");
} catch (SQLException e) {
LOG.fatal("Error while SET time_zone", e);
} finally {
try {
statement.close();
} catch (SQLException e) {
LOG.warn("Error while closing statement", e);
}
}
if(LOG.isDebugEnabled())
LOG.debug("SET time_zone("+timezone+") for connection, succeed!");
return conn;
}
(...)
和我的Spring配置文件:
<bean id="dataSource" class="com.my.package.dbcp.TimezoneEnabledDataSource" destroy-method="close">
(...)
<property name="timezone" value="${database.timezone}" />
(...)
</bean>
我希望这篇文章将来可以帮助某人。任何问题都给我打电话!