输入映射
传递pojo包装对象
需求:
用户综合条件查询功能。
使用mybatis实现用户查询列表,有很多查询条件(比如:商品信息、订单信息)。
如何将综合查询条件传到mybatis的statement中,要使用包装对象传这些参数。
- 定义一个包装对象
简单理解为:pojo包装了pojo
- mapper.java
创建一个CustomerUserMapper.xml
mapper.xml文件中还需要设置resultType=”user”
- 创建mapper的接口类
// 用户管理的mapper
public interface UserMapperCustomer {
// 综合条件查询用户信息
public List<User> findUserList(QueryUserVo queryUserVo) ;
}
- 经过测试,实现功能
传递hashmap
Sql映射文件定义如下:
<!-- 传递hashmap综合查询用户信息 -->
<select id="findUserByHashmap" parameterType="hashmap" resultType="user">
select * from user where id=#{id} and username like '%${username}%'
</select>
上边#{id}中的id和’%${username}%’中的username是hashmap的key
测试:
Public void testFindUserByHashmap()throws Exception{
//获取session
SqlSession session = sqlSessionFactory.openSession();
//获限mapper接口实例
UserMapper userMapper = session.getMapper(UserMapper.class);
//构造查询条件Hashmap对象
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("id", 1);
map.put("username", "管理员");
//传递Hashmap对象查询用户列表
List<User>list = userMapper.findUserByHashmap(map);
//关闭session
session.close();
}