1. 程式人生 > >mybatis介面傳入多個入參問題

mybatis介面傳入多個入參問題

實際專案開發時,經常會遇到mybatis的介面需要多個入參的情況,但是由於可能引數只有兩三個,不願意把這些引數封裝成一個物件,這時就面臨著引數直接傳入的情景。這時如果按照下面寫法,會報錯誤:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'projectId' not found. Available parameters are [0, 1, param1, param2]

解決方案:

(1)給dao介面的入參添加註解

單個引數,如果構建動態SQL有<if>標籤判斷,也需要在dao介面入參上加上註解:@Param,不然會報沒有set

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'parameter' in 'class java.lang.String'

(2)對應的的xml檔案的sql語句中,採用引數序號來表示,0代表第一個引數,1代表第二個引數,,,,(以此類推)

(3)dao介面的入參更改為map