mybatis 傳遞多個參數的方法(Multiple parameters)

 

    項目中使用自己做一下記錄以防以後忘記 

 

在用mybatis 做查詢的時候,通常會傳遞多個參數,一般來說,這種情況下有兩種解決辦法:
1, 利用 hashMap 去做。
2, 利用 mybatis 自身的多個參數傳遞方式去做。分別補充如下:

利用hashMap 傳遞多個參數
比如有如下語句:

程序代碼


<select id="selectByDate" parameterType="map" resultMap="campaignStats">
<![CDATA[
Select * FROM CampaignStats Where statsDate >= #{start} AND statsDate <= #{end}
]]>
</select>


對應的java 代碼爲

 程序代碼


public List<DpCampaignStats> selectByDate(Date start, Date end){
SqlSession session = sqlSessionFactory.openSession();
try {
Map<String, Date> map = new HashMap<String, Date>();
map.put("start", start);
map.put("end", end);
List<DpCampaignStats> list = session.selectList("DpCampaignStats.selectByDate", map);
return list;
} finally {
session.close();
}
}


只是第一種方法,當然還有還有如下方法

mybatis 自帶的 多個參數傳遞方法。
同樣的 語句

程序代碼


<select id="selectByDate" resultMap="campaignStats">
<![CDATA[
Select * FROM CampaignStats Where statsDate >= #{param1} AND statsDate <= #{param2}
]]>
</select>


請注意,這個時候沒有 parameterType, 但用到了類似 #{param1} 類似的參數. 同樣 java 代碼也需要做出改變

程序代碼


public List<DpCampaignStats> selectByDate(Date start, Date end){
SqlSession session = sqlSessionFactory.openSession();
try {
List<DpCampaignStats> list = session.selectList("DpCampaignStats.selectByDate", start,end);
return list;
} finally {
session.close();
}
}



推薦使用hashMap 來傳遞多個參數.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章