Mybatis笔记: 返回Map & List<Map>动态列数据集

        我们做查询/报表的时候多用map/list<map>来实现查询数据的返回,那么mybatis如何实现?

        1/在mapper.xml里面增加两个select function, 他们的resultType都指定为HashMap:

<select id="selectListMap" parameterType="java.lang.String" resultType="java.util.HashMap">
      select
      fa_login, fa_phone, fa_name, fa_status, fa_type, fa_create_by, fa_create_dt, fa_update_by, 
      fa_update_dt, fa_email, fa_passwd, fa_remark, fa_staff_id, fa_last_notify
      from public.ta_user
      where fa_login=#{faLogin,jdbcType=VARCHAR}
  </select>
  <select id="selectMap" parameterType="java.lang.String" resultType="java.util.HashMap">
      select 
      fa_login, fa_phone, fa_name, fa_status, fa_type, fa_create_by, fa_create_dt, fa_update_by, 
      fa_update_dt, fa_email, fa_passwd, fa_remark, fa_staff_id, fa_last_notify
      from public.ta_user
      where fa_login=#{faLogin,jdbcType=VARCHAR}
  </select>

修改interface增加两个接口方法, 

List<Map<String,Object>> selectListMap(String faLogin);
Map<String,Object> selectMap(String faLogin);


测试:

@Test
	public void testMapAndListMap(){
		SqlSession lvSess=MybatisUtils.getSession();
		try
		{
			
			TaUserMapper lvUserMapper=lvSess.getMapper(TaUserMapper.class);
			Map<String,Object> lvMap= lvUserMapper.selectMap("admin");			
			System.out.println(lvMap);			
			
			List<Map<String,Object>> lvListMap=lvUserMapper.selectListMap("admin");
			System.out.println(lvListMap);
		}
		finally{
			MybatisUtils.closeSession(lvSess);
		}
	}

总结: 两者在xml里面的resulttype均指定为hashmap,但interface里面,则一个是返回map,一个是返回list<map>即可 .



猜你喜欢

转载自blog.csdn.net/rocklee/article/details/80507670