(我用的MyBatis V3,Java SE的V6發動機,Tomcat的V6和Spring V3各地的Teradata V12)。使用SET語句與MyBatis的
一個爲我的當前項目的技術要求是使用查詢綁紮功能在Teradata。無論何時,只要需要運行類似下面的語句來完成:
SET QUERY_BAND='someKey=someValue;' FOR TRANSACTION;
我想爲我所有的電話查詢帶。不過,我不確定如何在清潔和可重用的方式添加此功能,而無需將其添加到我的每一個<select>
語句在我的映射文件類似如下:
<sql id="queryBand">
SET QUERY_BAND='k=v;' FOR TRANSACTION;
</sql>
<select ...>
<include refid="queryBand"/>
... some SQL performing a SELECT
</select>
我對上述問題有: 1)除了k & v之外,查詢頻段的格式在我所有的映射器XML文件中都是相同的,我想根據每個<select>
(等)基礎自定義該格式。我不知道如何在不必傳入k和v值的情況下執行此自定義,這會使我的映射器界面變得模糊。 2)上面的代碼有重複,讓我不安。開發人員必須記住要包含queryBand SQL,在某個階段(墨菲法則),有人會忘記它。
有人可以指點我的解決方案,以更清晰的方式實現查詢條帶?
是的,我正在考慮該解決方案。但是,沒有明顯的攔截方法。我目前正在研究MyBatis'Inteceptors'的想法...但實例和文檔都很少。 – Mark