mybatis传值同时传入list和string该怎么弄?

ETjr 发布于 2015/01/29 21:11
阅读 11K+
收藏 1
mybatis传值同时传入list和string该怎么弄?难道是吧list和string封装在map中?然后把单个map传入mybatis,那这样的话,list还可以被遍历吗?还是就是动态传入表名,,设置非预编译,便利list是用${},还是#{}
加载中
0
xmut
xmut

楼主我告诉你答案吧:

① 现在很多学校的老师都在吃老本,不思进取的,或者停留在理论基础上……

网上的很多关于mybatis都是过时的,很多方法都是遗留之前的ibatis。其实官方有翻译的中文文档,多看几遍,你就受益匪浅。

③ 使用Mybatis自带的注解@Param 即可轻松解决你的问题!

public interface UserMapper(){

  public List<User> findByNo(@Param("teacher") String teacher,
                             @Param("noList") List<String> noList
                     )
}



ETjr
ETjr
回复 @xmut : 谢谢大哥,能者为师,已经懂了,谢谢,早点休息吧
xmut
xmut
回复 @ETjr : 没错!比如:SELECT * FROM ${传入的表名} WHERE id=#{id}
ETjr
ETjr
回复 @xmut : 哦了,就是想要直接替换的就${},要参数编译的就#{},谢谢哥们,救我一命,不然我还要弄好久
xmut
xmut
回复 @ETjr : 直接用${表名}就可以。${}在mybatis里面代表纯粹的SQL语句内容替换,而#{}会参数预编译。
ETjr
ETjr
回复 @xmut : 表名也可以用@param?表名是用${}那传进去的值呢?继续用#{}?还是跟着换?还是就是要不要再mapper里面设置什么非预编译?谢谢哥们
下一页
0
M
Mr丶杨
可以用值对象的形式传递啊,你说的应该是用#{};
M
Mr丶杨
回复 @xmut : 回复 @xmut : 受教了,哈哈,我现在也用不到啊,都快忘干净了,以后还要多多学习啊。谢了
M
Mr丶杨
回复 @xmut : 回复 @xmut : 受教了,哈哈,我现在也用不到啊,都快忘干净了,以后还要多多学习啊。谢了
ETjr
ETjr
表名也可以用@param?表名是用${}那传进去的值呢?继续用#{}?还是跟着换?还是就是要不要再mapper里面设置什么非预编译?谢谢哥们
xmut
xmut
回复 @Mr丶杨 : 你们老师教你们碰到多个参数时,都要封装成Bean对象再传入,那我只能告诉你,这种方式做简单的系统还行。如果做ERP之类的系统,那估计你要崩溃了…… 直接用mybatis注解@Param轻松解决问题
ETjr
ETjr
回复 @Mr丶杨 : 你已经帮了很多了,谢啦
下一页
0
ImEiolam
ImEiolam

的确可以封成map传入啊;

多项删除的时候,例如传入ids=[1,2,3,4,5]

controler:

Map<String,Object> map = new HashMap<String,Object>();

map.put("ids",ids);

mapper:

public void deleteByMultipe(@Param("map")Map<String,Object> map);

mapper.xml:

<delete id="deleteByMultipe"  parameterType="map">

delete

from oa_user u

where u.id in

<foreach collection="map.ids" item="id" open="(" close=")" separetor=",">

#{id}

</foreach>

</delete>


返回顶部
顶部