一、使用一个实体作为数据的返回类型
如:
@Select("select * from fe_test where uid=#{uid} order by start_time desc") List<Test> getTestByUid(String uid);二、使用List<Map<String,Object>>作为数据的返回类型
如:
@Select("select subject,count(case when status='待批改' then 1 end) as waiting,\n" + "count(case when status='已批改' then 1 end) as finished\n" + "from fe_test\n" + "group by subject") List<Map<String,Object>> getTestStatusInfo();结语:第一种方式是直接用已定义好的实体Test类型的列表List作为数据返回的类型(实体属性要与数据库查询返回的结果集的字段一一对应);第二种方式是使用List<Map<String,Object>>作为数据返回类型,那么 映射Map中的key对应的就是字段,value对应的就是字段的值(Map的值value通过键key来取)。
扩展:ajax接收后台返回的List<Map<String,Object>>数据类型,并逐一取出其值,ajax代码如下:
$.ajax({ type:"get", url:"/getTestStatusInfo", dataType:"json", success:function (objectList) { for(var i = 0; i < objectList.length; i++){ var subject = objectList[i].subject;//键为subject对应的值 var waiting = objectList[i].waiting;//键为waiting对应的值 var finished = objectList[i].finished;//键为finished对应的值 alert("subject:"+subject+"waiting:"+waiting+"finished:"+finished); } }, error:function () { alert("系统出错"); } })