您的位置:首页 > 其它

MyBatis传递多个参数

2017-07-25 11:52 423 查看

MyBatis传递多个参数

1:参数所在下标

下标从0开始,依次对应方法中参数所在的位置
<select id="findByIndexParams" resultMap="userMap">
select *
from t_user
where user_name = #{0} and user_sex = #{1} and user_status = #{2}
</select>
测试代码:
// UserMapper.java
List<User> findByIndexParams(String name, Integer sex, Integer status);

// 测试
List<User> userList = userMapper.findByIndexParams("小明", 1, 1);


2:Map方式

不推荐这种方式,看不到内容传递的参数。可以使用实体类或者@param注解
<select id="findByMapParams" parameterType="map" resultMap="userMap">
select *
from t_user
where user_name = #{name} and user_sex = #{sex} and user_status = #{status}
</select>

测试代码:
// UserMapper.java
List<User> findByMapParams(Map<String, Object> params);

// 测试
Map<String, Object> params = new HashMap<>();
params.put("name", "小明");
params.put("sex", 1);
params.put("status", 1);
List<User> userList = userMapper.findByMapParams(params);


3:@Param注解

<select id="findByAnnoParams" resultMap="userMap">
select *
from t_user
where user_name = #{name} and user_sex = #{sex} and user_status = #{status}
</select>

测试代码:
// UserMapper.java
List<User> findByAnnoParams(@Param("name") String name, @Param("sex") Integer sex,
@Param("status") Integer status);

// 测试
List<User> userList = userMapper.findByAnnoParams("小明", 1, 1);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: