1. 使用List 传入in参数
public List<XXXBean> getXXXBeanList(List<String> list);
<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')
2 。使用Map封装多个对象
public List<XXXBean> getXXXBeanList(HashMap map);
<select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">
select 字段... from XXX where id=#{xxId} code = #{xxCode}
</select>
其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个,map如何封装就不用了我说了吧。
3. 多参数传递之注解方式, 特别是自定义对象和普通类型同时传入。
例子:
接口
public List<User> selectUser(@Param("user") User user, @Param("startnum") int startnum,@Param("pagesize") int pagesize);
xml配置这样写:
<select id="selectUser" resultMap="com.xxx.xxx.User">
SELECT * FROM user
where username like #{user.username} and userparam=#{user.userparam}
limit #{startnum},#{pagesize}
</select>
以前在<select>语句中要带parameterType的,现在可以不要这样写。
4. 多个字符串传入
public user selectuser(string name,string dept)
<select id="selectuser" resultMap="User">
select * from user
where username=#{name} and dept=#{dept}
</select>