0

接続プールとして c3p0 を使用して、MySQL JDBC 接続のタイムゾーンを動的に設定したいと考えています。特定のMySQL JDBC接続のタイムゾーンを設定するには、「SET time_zone = '+02:00';」を使用できることを知っていますが、プールから取得した接続にこれを設定すると、接続にこのタイムゾーンがあると想定されますそれがプールに戻され、新しいリクエストウィッチリクエストに接続が与えられたとき?!? 私はそれを正しく理解しましたか?

はいの場合、プールされた接続のタイムゾーンが元のタイムゾーンに戻るように動的に設定するにはどうすればよいですか環境)。

これが私の(Report)Daoからの私のコードスニペットです

public TrafficDuringDayGroupedByPhoneEvent countAllSummariesForTimeReport(Integer childId, Date start, Date end, MessageType type, TimeZone timezone) {


    Integer[] res = {0, 0, 0, 0};
    Session session = getSession();

    //SET time_zone = '+02:00';
    String sql = "select count(calls.d), d from (SELECT  start_time, \n"
            + "(case when hour(start_time) >= 6 and  hour(start_time) < 9 then 'morning'\n"
            + "when hour(start_time) >= 9 and  hour(start_time) < 15 then 'day'\n"
            + "when hour(start_time) >= 15 and  hour(start_time) < 21 then 'aft'\n"
            + "when hour(start_time) >= 21 and  hour(start_time) <= 24 then 'night'\n"
            + "when hour(start_time) < 6 then 'night' end) as d\n" + "FROM bpr_report_event b inner join ";

    ....
}

私の質問は、以下の質問の人と同じタイムゾーンではなく、接続ごとに動的に設定したいことを除いて、以下のものと似ています。

Spring と DBCP と MySQL で接続タイムゾーンを設定する

4

1 に答える 1

0

タイムゾーンを UTC onCheckin に戻す c3p0 ConnectionCustomizer を作成できます。見る

http://www.mchange.com/projects/c3p0/apidocs/com/mchange/v2/c3p0/ConnectionCustomizer.html

http://www.mchange.com/projects/c3p0/#connection_customizers

于 2013-01-22T01:32:02.723 に答える