MyBatis3传递多个参数(Multiple Parameters)
传递多个参数一般用在查询上,比如多个条件组成的查询,有以下方式去实现:
版本信息:
MyBatis:3.4.4
1、自带方法
selectuser.id,user.userName,user.userAddress,article.idasaid,article.title,article.contentfromuser,articlewhereuser.id=article.useridanduser.id=#{arg0}limit#{arg1},#{arg2}
publicListgetUserArticlesByLimit(intid,intstart,intlimit); List articles=userMapper.getUserArticlesByLimit(1,0,2);
说明,arg0...也可以写成param0...
2、直接传递对象
select*fromarticlewhere1=1 andtitle=#{title} andcontent=#{content} limit1
publicArticledynamicIfTest(Articlearticle); ArticleinArticle=newArticle(); inArticle.setTitle("test_title"); ArticleoutArticle=userOperation.dynamicIfTest(inArticle);
3、使用@Praam标注
select*fromarticlewhere1=1 andtitle=#{title} andcontent=#{content} andtile="test_title"
publicArticledynamicChooseTest( @Param("title") Stringtitle, @Param("content") Stringcontent); ArticleoutArticle2=userOperation.dynamicChooseTest("test_title",null);
说明:这种方法同样可以用在一个参数的时候。
4、使用HashMap
select*fromarticlewhereid=#{id}andname=#[code]
说明:parameterType="hashmap"可以不用写。
publicListgetArticleBeanList(HashMapmap);
HashMapmap=newHashMap (); map.put("id",1); map.put("code","123"); List articless3=userOperation.getArticleBeanList(map);
特殊的HashMap示例,用在foreach节点:
select*fromarticlewheretitlelike"%"#{title}"%"andidin #{item}
publicListdynamicForeach3Test(Map params);
HashMapmap=newHashMap (); map.put("title","title"); map.put("ids",newint[]{1,3,6}); List articless3=userOperation.dynamicForeach3Test(map);
5、List结合foreach节点一起使用
select*fromarticlewhereidin #{item}
publicListdynamicForeachTest(List ids);
Listids=newArrayList (); ids.add(1); ids.add(3); ids.add(6); List articless=userOperation.dynamicForeachTest(ids);
6、数组结合foreach节点一起使用
select*fromarticlewhereidin #{item}
publicListdynamicForeach2Test(int[]ids);
int[]ids2={1,3,6}; Listarticless2=userOperation.dynamicForeach2Test(ids2);
参考:
http://www.yihaomen.com/article/java/426.htm
到此这篇关于MyBatis3传递多个参数(MultipleParameters)的文章就介绍到这了,更多相关MyBatis3传递多个参数内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!