方法一:不需要写parameterType参数
public ListgetXXXBeanList(String xxId, String xxCode);
select t.* from tableName where id = #{0} and name = #{1}
用#{index}是第几个就用第几个的索引,索引从0开始
方法二:基于注解
public ListgetXXXBeanList(@Param("id")Stringid, @Param("code")String code);
select t.* from tableName where id = #{id} and name = #{code}
给参数配置@param注解后,Mybatis会自动将参数封装成Map类型,而@param注解的值会成为Map中的key,因此在sql中可以通过配置的注解值来使用参数。
方法三:Map封装
public List getXXXBeanList(HashMapmap);
select 字段... from XXX where id=#{xxId} code = #{xxCode}
其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个,map如何封装就不用了我说了吧。
方法四:List封装
public List getXXXBeanList(Listlist);
select 字段... from XXX where id in#{item}
总结
传递list和map在资源消耗上肯定远大于方法一和方法二,但是有一些特殊的情形需要传递list,比如你需要传递一个id集合并批量对id进行sql操作然后再返回等等。所以都需要了解。
网友评论