Connexion de paramètre de fuseau horaire avec le Printemps et DBCP et MySQL

Mon Environnement

  • Java 5
  • Printemps 2.5.5
  • DBCP source de données (org.apache.commons.dbcp.BasicDataSource)
  • MySQL

Des postes similaires

Liens

Mon Problème

  • Ce que je dois mettre sur ma connexion le fuseau horaire, visant à empêcher les conversions lorsque vous traitez avec les colonnes de type TIMESTAMP.

Mon Idée/recherche

  • DBCP Pool de Connexion n'a pas mentionné quoi que ce soit autour du fuseau horaire. LIEN
  • Ce que j'ai d'enquêter et de la pensée que c'était oK est décrit sur CETTE post, en exemplifiant est:
<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>

Demander de l'aide de la zone 🙂

  • Mais ce n'est pas de travail!!
  • Ce que je veux, ici, est un moyen simple, de préférence à l'aide de Printemps pour configurer le fuseau horaire sur la connexion jdbc.

Merci d'avance pour toute aide/conseils/conseils/partage du savoir


SOLUTION:

Ma Solution était basée sur des conseils recueillis sur ce post! Merci pour tout!

(...)
@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;
}
(...)

et sur mon Ressort fichier de configuration:

<bean id="dataSource" class="com.my.package.dbcp.TimezoneEnabledDataSource" destroy-method="close">
    (...)
    <property name="timezone" value="${database.timezone}" />
    (...)
</bean>

J'espère que ce post peut aider quelqu'un dans le futur. Toute question de ping-moi!

êtes-vous certain que GMT-3 est reconnu? Avez-vous essayé America/Los_Angeles par exemple (pour des raisons de test)
Je vais continuer à mettre à jour mon post avec toutes mes trouvailles! Je viens de quitter à peu près à trouver quelque chose au sujet de DBCP configurations!
Je vais doubler vérifier dans quelques heures, que je ne suis pas @ home, mais comme par les pairs le lien que je viens de mentionner l'erreur est de se plaindre de la propriété( propriété non Valide 'sessionTimeZone'), et la valeur pour elle.

OriginalL'auteur rafa.ferreira | 2011-05-11