在我們xml的配置中,parameterType用於表示參數的類型,這里可以傳int,也可以傳類,MyBatis用ognl表達式解析對象字段的值
OGNL表示式是阿帕奇開發出來的,全稱叫Object Graphic Navigation Language——對象圖導航語言。它通過對象的取值方法獲取數據,寫法上把get給省略了。
例如我們要獲取User的名稱,類中我們寫user.getUsername(),而OGNL表達式寫法為user.username,那為什么在MyBatis里我們可以直接寫username而不用寫user.呢,是因為parameterType中已經提供了屬性所屬的類
但如果現在的查詢條件是一個對象呢,我們要在寫查詢方法的時候,把查詢對象當成一個參數傳遞進去
我們來寫這個查詢的方法
現在QueryVo是一個類,我們在domian定義一下QueryVo類,其包含成員變類User
現在假定我們的查詢條件就是模糊查詢,我們現在來寫xml配置文檔,需要注意的是現在的參數是QueryVo,我們不能直接寫username,因為QueryVo類里沒有username這個屬性,要寫user.username,這樣就符合OGNL表達式了。
然后我們來寫測試文檔,此時我們要自己實例化一個vo,當作這次查詢的條件
運行一下,並沒有問題