接続プールとして 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 ";
....
}
私の質問は、以下の質問の人と同じタイムゾーンではなく、接続ごとに動的に設定したいことを除いて、以下のものと似ています。