2016-09-13 27 views
0

我的項目libary版本 的MyBatis 3.1 的PostgreSQL 9.2如何更改時區,並回到以前的時區

我想選擇查詢前更改連接時區。並回到時區。

首先,我嘗試一下。在mapper xml中設置時區。

set timezone = 'Asia/Seoul' ; 
select now(); 
set timezone = 'UTC'; 

我想如果選擇查詢時發生錯誤,時區未設置爲UTC。 如果時區未設置爲UTC,則不同請求上的查詢將爲utc時間。

秒,我試試。由spring DI注入的sqlsession。

sqlsession.selectOne(namespace.setTimezone, 'Asia/Seoul'); 
sqlsession.selectOne(namespace.selectNow); 
sqlsession.selectOne(namespace.setTimezone, 'UTC'); 

我想。這三個sqlsession可能不是相同的連接。

如何更改時區並返回以前的時區? 如果我處理事務,三個sqlsession發生的是相同的連接?

回答

0

使用交易。

它mybatis是值得的鹽,它將支持數據庫事務,並且它必須在一個事務中對所有語句使用相同的連接。

我不知道mybatis是否可以做到這一點,但在PostgreSQL中,您可以使用SET LOCAL僅在交易期間更改參數。它將在交易結束時自動重置。