需求
查询结果封装成一个map
Map<Integer,User>
键是这条记录的主键,值是记录封装后的javabean
mybatis中有一个MapKey注解 可以指定
我们的pojo类
private Integer id;
private String name;
private Integer age;
private String email;
接口方法
/**
* @MapKey mybatis封装map的时候使用哪个属性作为key
* @param name
* @return
*/
@MapKey("id")
Map<Integer,User> findByMap(String name);
xml映射
<!--查询结果封装一个map Map<Integer,User> 键是这条记录的主键值是记录封装后的javabean-->
<select id="findByMap" resultType="com.rpf.domain.User">
select * from user where name like #{name}
</select>
测试
@Test
public void testLike() throws IOException {
InputStream stream = Resources.getResourceAsStream("SqlConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(stream);
SqlSession session = factory.openSession();
UserDao mapper = session.getMapper(UserDao.class);
Map<Integer, User> userMap = mapper.findByMap("张%");
System.out.println(userMap);
}
结果
key是 6
value是我们的user对象