MyBatis傳入多個引數
一、單個引數:
public List<XXBean> getXXBeanList(String xxCode);
<select id="getXXXBeanList" parameterType="java.lang.String" resultType="xxxx.xx.XXBean">
select t.* from tableName t where t.xxCode= #{xxCode}
</select
其中方法名和ID一致,#{}中的引數名與方法中的引數名一致,resultType="xxx.x.XXXBean" , 寫的是類全名
二、多引數:
第一種方案 DAO層的函式方法
Public User selectUser(String name,String area)
對應的Mapper.xml
<select id="selectUser" resultMap="BaseResultMap">
select * from user_user_t where user_name = #{0} and user_area=#{1}
</select>
其中,#{0}代表接收的是dao層中的第一個引數,#{1}代表dao層中第二引數,更多引數一致往後加即可。
第二種方案 此方法採用Map傳多引數
Dao層的函式方法
Public User selectUser(Map paramMap);
對應的Mapper.xml
<select id=" selectUser" resultMap="BaseResultMap">
select * from user_user_t where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR}
</select>
Service層呼叫
Private User xxxSelectUser(){
Map paramMap=new hashMap();
paramMap.put(“userName”,”對應具體的引數值”);
paramMap.put(“userArea”,”對應具體的引數值”);
User user=xxx. selectUser(paramMap);}
個人認為此方法不夠直觀,見到介面方法不能直接的知道要傳的引數是什麼。
第三種方案
Dao層的函式方法
Public User selectUser(@param(“userName”)Stringname,@param(“userArea”)String area);
對應的Mapper.xml
<select id=" selectUser" resultMap="BaseResultMap">
select * from user_user_t where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR}
</select>
個人覺得這種方法比較好,能讓開發者看到dao層方法就知道該傳什麼樣的引數,比較直觀,個人推薦用此種方案。三、List封裝in:
public List<XXXBean> getXXXBeanList(List<String> listTag);
<select id="getXXXBeanList" resultType="XXBean">
select 欄位... from XXX where id in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</select>
foreach 最後的效果是select 欄位... from XXX where id in ('1','2','3','4') foreach元素的屬性主要有 item,index,collection,open,separator,close。 item表示集合中每一個元素進行迭代時的別名.
index指 定一個名字,用於表示在迭代過程中,每次迭代到的位置.
open表示該語句以什麼開始,separator表示在每次進行迭代之間以什麼符號作為分隔 符.
close表示以什麼結束.
四、selectList()只能傳遞一個引數,但實際所需引數既要包含String型別,又要包含List型別時的處理方法:
將引數放入Map,再取出Map中的List遍歷。如下
List<String> list_3 = new ArrayList<String>();
Map<String, Object> map2 = new HashMap<String, Object>();
list.add("1");
list.add("2");
map2.put("list", list); //網址id
map2.put("siteTag", "0");//網址型別
public List<SysWeb> getSysInfo(Map<String, Object> map2) {
return getSqlSession().selectList("sysweb.getSysInfo", map2);
}
<select id="getSysInfo" parameterType="java.util.Map" resultType="SysWeb">
select t.sysSiteId, t.siteName, t1.mzNum as siteTagNum, t1.mzName as siteTag, t.url, t.iconPath
from TD_WEB_SYSSITE t
left join TD_MZ_MZDY t1 on t1.mzNum = t.siteTag and t1.mzType = 10
WHERE t.siteTag = #{siteTag }
and t.sysSiteId not in
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
相關文章
- mybatis 傳入多個引數MyBatis
- Mybatis parameterType 傳入多個引數的使用MyBatis
- MyBatis傳入多個引數的問題MyBatis
- 15.MyBatis傳入多個引數的問題MyBatis
- Mybatis 傳入多個引數查詢資料 (3種方法)MyBatis
- MyBatis傳入多個引數,傳入陣列和列表資料的處理MyBatis陣列
- Mybatis(五)--原始碼分析傳入單個list引數和多個list引數寫法MyBatis原始碼
- mybatis 傳遞多個引數 --解決mybatis查詢使用多個引數方法--javabean傳統方法和map方法MyBatisJavaBean
- mybatis 的傳入引數如何既有物件又有單個引數MyBatis物件
- Mybatis傳入引數為List物件MyBatis物件
- 如何在mybatis 中傳多個引數,如何在mybatis 中遍歷 集合?MyBatis
- Mybatis傳遞多個引數的4種方式(乾貨)MyBatis
- mybatis如何傳引數MyBatis
- Mybatis引數傳遞MyBatis
- MyBatis中傳入引數為List集合的MyBatis
- 12.MyBatis學習--對映檔案_引數處理_單個引數&多個引數&命名引數MyBatis
- MyBatis引數傳入集合之foreach動態sqlMyBatisSQL
- Angular 自定義結構化指令,如何傳入多個輸入引數Angular
- GridView CommandArgument傳遞多個引數View
- mybatis 多引數 list和StringMyBatis
- mybatis sql foreach 引數的傳入的三種情況!!MyBatisSQL
- mybatis基礎03(介面中的多個引數處理)MyBatis
- Mybatis引數傳遞&註解開發MyBatis
- Jmeter使用_time函式實現同一個介面引數傳入可以每次傳入不同的引數JMeter函式
- ASP.NET 標記href傳遞多個引數ASP.NET
- Silverlight之Frame傳遞多個引數並獲取完整引數
- gdb除錯傳入引數除錯
- mybatis傳遞引數到mapping.xmlMyBatisAPPXML
- SpringMVC中@RequestBody接收前端傳來的多個引數SpringMVC前端
- iOS之@selector的函式傳遞多個引數iOS函式
- UIButton addTarget:self action:@selector() 傳多個引數UI
- 在多個JSP頁面之間傳遞引數JS
- MyBatis中foreach傳入引數為list、陣列、map的不同寫法MyBatis陣列
- rails中傳遞多個引數破壞了 restful原則?AIREST
- SSM框架中Mybatis傳遞引數的幾種方法SSM框架MyBatis
- 把介面當作引數傳入
- MyBatis 引數處理MyBatis
- Mybatis的引數-parameterTypeMyBatis