2015-06-02 24 views
0

我正在嘗試將jdbcType設置爲傳遞給我的Ibatis查詢的參數。我的後端表有字段定義爲varchar和mybatis框架似乎是轉換字符串參數,我通過 在我的mapper.java nvarchar。查詢優化程序正在花費時間來驗證執行計劃,從而執行隱式類型轉換,因此會導致一些意外的延遲。有什麼建議解決這個問題?Java - 爲mybatis中的參數設置jdbcType 3

什麼,我已經嘗試過的樣本: SELECT * FROM myTable的T其中t.periodType =#{periodType,java類型= 「字符串」,jdbcType爲 「VARCHAR」}

這個問題,我們的查詢是相當大的,它由很多子查詢組成,我們幾次傳遞相同的參數。在每次發生時爲相同變量定義jdbcType變得越來越麻煩。

由於parameterMap已被棄用,我嘗試探索parameterType。我將一個類傳遞給parameterType,但找不到將jdbcType設置爲parameterType中的變量的方法。

任何幫助表示讚賞

回答

0

參數類型將不會爲你工作 - 這是Java類型,很少會需要的。 一種選擇,我能想到的是使用

select * from myTable t where t.periodType=<include refid="PARAM_PERIOD_TYPE"/> 

然而,這將使得SQL不可讀。唯一的好處是如果要進行更改,他們只需要在被引用的PARAM_PERIOD_TYPE sql標記中。