使用map接收mybatis的返回值,通常为Map<String,Object>或者List<Map<String,Object>>

  • key是表字段(类型是String),value是表字段值(类型是Object)
  • 查询出来的一行数据会被写到一个Map里面,如果查询出来多行数据,需要用List<Map<String,Object>>
  • 取里面的数值   
//查询出来的一行数据会被写到一个Map里面

//dao:RANK为mysql里面的关键字必须用``括起来(不管是在select后面还是where后面)
@Select("select * " +
            "  from T_PAGE_INFO " +
            " where TABLEID = #{tableId} and `RANK` = #{rank}" )
    Map<String,Object> queryByTableIdAndRank(@Param("tableId") long tableId , @Param("rank") int rank);

//controller方法:获得map里面的key和value,只能遍历
@GetMapping("/queryByTableIdAndRank")
    public Map<String,Object> queryByTableIdAndRank(){
        Map<String,Object> map = dataGridColMgntDao.queryByTableIdAndRank(10000,2);
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println(entry.getKey()+":"+entry.getValue());
        }
        return map;
    }


/**:一个map里面的值
{
    "ALIGN": "left",
    "TABLEID": 10000,
    "PROP": "deptName",
    "HEADERALIGN": "left",
    "REQUIRED": "N",
    "LABEL": "部门",
    "RANK": 2,
    "ISSHOW": "Y"
}
*/
//查询出来多行数据,需要用List<Map<String,Object>>
@Select("select * " +
            "  from T_PAGE_INFO " +
            " where TABLEID = #{tableId} " )
    List<Map<String,Object>> queryByTableId(@Param("tableId") long tableId);


@GetMapping("/queryByTableId")
    public List<Map<String,Object>> queryByTableId(){
        List<Map<String,Object>> map = dataGridColMgntDao.queryByTableId(10000);
        for (Map<String, Object> resultMap : map) {
            for (Map.Entry<String, Object> entry : resultMap.entrySet()) {
                System.out.println(entry.getKey()+":"+entry.getValue());
            }
        }
        return map;
    }

更多推荐

mybatis-返回参数用Map接收