My Enviroment
- Java 5
- Spring 2.5.5
- DBCP DataSource (org.apache.commons.dbcp.BasicDataSource)
- MySQL
Похожие сообщения
Ссылки
Моя проблема
- Мне нужно установить на мое соединение часовой пояс, чтобы предотвратить конверсии при работе с столбцами TIMESTAMP.
Моя идея/исследование
-
Пул соединений DBCP ничего не упоминал о часовом поясе. LINK
-
Что я изучаю и думал, что это oK, описано в ЭТО, примером является:
<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>
Я надеюсь, что этот пост может помочь кому-то в будущем. Любой вопрос ping me!