My Enviroment
- Java 5
- Spring 2.5.5
- DBCP DataSource (org.apache.commons.dbcp.BasicDataSource)
- MySQL
Similar posts
- Setting session timezone with spring jdbc oracle
Links
- http://www.mysqlfaqs.net/mysql-faqs/General-Questions/How-to-manage-Time-Zone-in-MySQL
My Problem
- I need to set on my connection the timezone, aiming to prevent the conversions when dealing with TIMESTAMP columns.
My Idea/research
DBCP Connection Pool did not mention anything around timezone. LINK
What I investigate and thought that was oK is described on THIS post, exemplifying is:
<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>
Asking for help area :)
- But this is not working!!
- What I want here is a simple way, preferentially using Spring to configure the timezone on jdbc connection.
Thanks in advance for any help/tips/advice/knowledge share
SOLUTION:
My Solution was based on tips collected on this post! Thanks for all!
(...)
@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;
}
(...)
and on my Spring configuration file:
<bean id="dataSource" class="com.my.package.dbcp.TimezoneEnabledDataSource" destroy-method="close">
(...)
<property name="timezone" value="${database.timezone}" />
(...)
</bean>
I hope this post can help someone in the future. Any question ping me!